gpt4 book ai didi

python - 如何在 Windows 中运行这个适用于 Linux 的 python 脚本?

转载 作者:太空宇宙 更新时间:2023-11-04 06:02:20 24 4
gpt4 key购买 nike

我在 Windows 7 计算机上使用 Python 3.5。

我正在尝试运行本书中找到的旨在在 Linux 中运行的 python 脚本学习 Python 网络编程 作者:M. O. Faruque Sarker 博士和 Sam Washington 2015 年 6 月 17 日第 6 章 IP 和 DNSGeoIP 查找

......代码保存在我的C盘中,名称为C:\Python35\geoiplookup.py我已将其重命名为“6_3_geoip_lookup.py”到“geoiplookup.py”..........这是代码,并且还以更用户友好的图像显示在 /image/oSjV9.jpg…………

import socket
from geoip import geolite2
import argparse


if __name__ == '__main__':
# Setup commandline arguments
parser = argparse.ArgumentParser(description='Get IP Geolocation info')
parser.add_argument('--hostname', action="store", dest="hostname", required=True)

# Parse arguments
given_args = parser.parse_args()
hostname = given_args.hostname
ip_address = socket.gethostbyname(hostname)
print("IP address: {0}".format(ip_address))

match = geolite2.lookup(ip_address)
if match is not None:
print('Country: ',match.country)
print('Continent: ',match.continent)
print('Time zone: ', match.timezone)

......该脚本将显示类似于以下内容的输出(在 Linux 中):

$ python 6_3_geoip_lookup.py --hostname=amazon.co.uk
IP address: 178.236.6.251
Country: IE
Continent: EU
Time zone: Europe/Dublin

......我尝试使用以下命令在 Windows 中的 Python GUI shell 中运行 .py 文件,但没有成功。请参阅图片/image/DFkfc.jpg…………

import geoiplookup
--hostname=amazon.co.uk
SyntaxError: can't assign to operator

--hostname='amazon.co.uk'
SyntaxError: can't assign to operator

'--hostname'='amazon.co.uk'
SyntaxError: can't assign to literal

'--hostname'=amazon.co.uk
SyntaxError: can't assign to literal

在你指责我没有在命令行中尝试这个之前:

C:\Python35>python geoiplookup.py --hostname=amazon.co.uk

我有,并且收到一条错误消息:

IP address: 178.236.6.251
Traceback (most recent call last):
File "geoiplookup.py", line 17, in <module> match = geolite2.lookup(ip_address)
File "c:\Python35\lib\site-packages\geoip.py", line 382, in _read_mmdb_metadata
TypeError: a bytes-like object is required, not 'str'
c:\Python35>

请指教。谢谢一百万。

非常感谢。

最佳答案

您没有运行 Python 脚本,而是在 Python 解释器中并尝试运行每一行代码。

查看 Linux 输出:

$ python 6_3_geoip_lookup.py --hostname=amazon.co.uk
IP address: 178.236.6.251
Country: IE
Continent: EU
Time zone: Europe/Dublin

第一行很重要。 就是您应该在 Windows 命令行上运行的内容:

C:\Python35>python geoiplookup.py --hostname=amazon.co.uk

关于python - 如何在 Windows 中运行这个适用于 Linux 的 python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37557880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com