在 Ubuntu 上安装地球引擎
Installing earth engine on Ubuntu
我想在 Ubuntu 18.04 的 Python 上安装 Earth Engine API。我的系统上同时安装了 Python 2.7 和 Python 3.6,并且我按照说明使用 pip 和 pip3 安装了 Earth Engine(安装 google-api-python-client、oauth2client 和 earthengine-api) 没有任何问题。但是我在 2.7 和 3.6 上都遇到了错误:
在 Python 2.7 上,"import ee" 有效,但 "ee.Initialize()" return 是这样的:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'Initialize'
在 Python 3.6 上,"import ee" 不起作用并且 return 此错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/sshahhey/.local/lib/python3.6/site-packages/ee/__init__.py", line 1, in <module>
from .main import main
File "/home/sshahhey/.local/lib/python3.6/site-packages/ee/main.py", line 10, in <module>
import StringIO
ModuleNotFoundError: No module named 'StringIO'
有什么帮助吗?我对解决 Python 3.
的问题特别感兴趣
您的系统似乎有一个名为 ee
的 Python 包,它 不是 Earth Engine API。我这样说是因为 Python 3 traceback 指定了一个名为 ee/main.py
的文件,该文件不存在且从未存在过。这也可以解释为什么在另一种情况下找不到 ee.Initialize()
。
我建议进入 /home/sshahhey/.local/lib/python3.6/site-packages/ee/
并浏览那里的代码,看看它可能是什么其他包。如果它不是你需要的东西,那么你可以删除那个 ee/
。如果您出于其他目的需要它,您可以使用 virtualenv 来管理冲突库的安装。
跟进凯文的回答:
我遇到了同样的问题,但是我的 /usr/local/lib/python2.7/site-packages/ee
的状态看起来和我同事的一样,他的 Earth Engine API 正在工作美好的。问题是有 2 个 pip
包写入同一目录:
earthengine-api:
- 这是您要的套餐
- 将 Earth Engine 库写入
site-packages/ee
ee:
- 与 EE 无关,只是
dd
的包装
- 将
main.py
和 __init__.py
写入 site-packages/ee
我们两个设置之间的唯一区别是我们安装这些软件包的顺序。对我来说,第二次安装 ee
覆盖了 __init__.py
文件,这阻止了 ee
模块导入库内容。解决方法是完全清除目录和相关的 dist-info
目录,然后重新开始:
rm -rf /usr/local/lib/python2.7/site-packages/ee
rm -rf /usr/local/lib/python2.7/site-packages/earthengine_api-0.1.182.dist-info
sudo pip install earthengine_api
我想在 Ubuntu 18.04 的 Python 上安装 Earth Engine API。我的系统上同时安装了 Python 2.7 和 Python 3.6,并且我按照说明使用 pip 和 pip3 安装了 Earth Engine(安装 google-api-python-client、oauth2client 和 earthengine-api) 没有任何问题。但是我在 2.7 和 3.6 上都遇到了错误:
在 Python 2.7 上,"import ee" 有效,但 "ee.Initialize()" return 是这样的:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'Initialize'
在 Python 3.6 上,"import ee" 不起作用并且 return 此错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/sshahhey/.local/lib/python3.6/site-packages/ee/__init__.py", line 1, in <module>
from .main import main
File "/home/sshahhey/.local/lib/python3.6/site-packages/ee/main.py", line 10, in <module>
import StringIO
ModuleNotFoundError: No module named 'StringIO'
有什么帮助吗?我对解决 Python 3.
的问题特别感兴趣您的系统似乎有一个名为 ee
的 Python 包,它 不是 Earth Engine API。我这样说是因为 Python 3 traceback 指定了一个名为 ee/main.py
的文件,该文件不存在且从未存在过。这也可以解释为什么在另一种情况下找不到 ee.Initialize()
。
我建议进入 /home/sshahhey/.local/lib/python3.6/site-packages/ee/
并浏览那里的代码,看看它可能是什么其他包。如果它不是你需要的东西,那么你可以删除那个 ee/
。如果您出于其他目的需要它,您可以使用 virtualenv 来管理冲突库的安装。
跟进凯文的回答:
我遇到了同样的问题,但是我的 /usr/local/lib/python2.7/site-packages/ee
的状态看起来和我同事的一样,他的 Earth Engine API 正在工作美好的。问题是有 2 个 pip
包写入同一目录:
earthengine-api:
- 这是您要的套餐
- 将 Earth Engine 库写入
site-packages/ee
ee:
- 与 EE 无关,只是
dd
的包装
- 将
main.py
和__init__.py
写入site-packages/ee
- 与 EE 无关,只是
我们两个设置之间的唯一区别是我们安装这些软件包的顺序。对我来说,第二次安装 ee
覆盖了 __init__.py
文件,这阻止了 ee
模块导入库内容。解决方法是完全清除目录和相关的 dist-info
目录,然后重新开始:
rm -rf /usr/local/lib/python2.7/site-packages/ee
rm -rf /usr/local/lib/python2.7/site-packages/earthengine_api-0.1.182.dist-info
sudo pip install earthengine_api