嗨,我遇到以下代码的问题。
PS:它在我的本地机器上运行良好,但在服务器中遇到问题
import geoip2.database
def get_geo_city_from_ip(ip="103.148.20.109"):
try:
reader = geoip2.database.Reader('GeoLite2-City.mmdb')
response = reader.city(ip)
city=response.city.name
reader.close()
return city
except Exception as e:
return None
a = get_geo_city_from_ip()
print("City ####",a)
错误
Traceback (most recent call last):
File "test.py", line 2, in <module>
import geoip2.database
File "/var/www/html/geo/test/lib/python3.5/site-packages/geoip2/database.py", line 10, in <module>
import maxminddb
File "/var/www/html/geo/test/lib/python3.5/site-packages/maxminddb/__init__.py", line 5, in <module>
import maxminddb.reader
File "/var/www/html/geo/test/lib/python3.5/site-packages/maxminddb/reader.py", line 36
_buffer: Union[bytes, FileBuffer, "mmap.mmap"]
^
SyntaxError: invalid syntax
程序包&版本Python 3.5.2aiohttp==3.6.2异步超时==3.0.1attrs==20.2.0certific==2020.6.20chardet==3.0.4大地水准面2==40.2idna==2.10idna ssl==1.1.0maxminddb==2.0.2多向===4.7.6pkg资源==0.0.0请求==2.24.0simplegeoap2==1.0.2键入扩展==3.7.4.3urllib3==1.25.10yarl==1.5.1
您在本地机器中使用python 3.7+吗?
在python 3.5中不支持注释var类型。
类似错误排除信息。
_buffer: Union[bytes, FileBuffer, "mmap.mmap"]
在你的ec2服务器中使用python 3.7+,一切都好。
在我更改大地水准面2=2.9.0maxminddb==1.4.1