Проблема
Я пытаюсь разработать базовое приложение Google App Engine. Я много занимаюсь наукой о данных, поэтому использую Anaconda для управления своими дистрибутивами Python.
Недавно я пытался настроить Google Cloud SDK + Google Cloud Client Libraries для разработки в GAE (в стандартной среде) и не могу заставить их работать вместе.
Я активировал среду Python 2.7 (py27), и когда я пытаюсь запустить базовое приложение, я получаю следующую ошибку:
File "C:\Users\dominic\Anaconda3\envs\py27\lib\site-packages\google\cloud\bigquery\__init__.py", line 31, in <module>
from pkg_resources import get_distribution
ImportError: No module named pkg_resources
Однако этот модуль существует в py27
.
На интерактивной консоли, которую предоставляет SDK, я вижу, что она выполняет правильную версию python:
import sys, os
print(os.path.dirname(sys.executable))
Возврат: C:\Users\dominic\Anaconda3\envs\py27
Поэтому я не могу понять, почему он не может найти эту конкретную библиотеку. Я подумал, что это может быть связано с необходимостью установить любые сторонние библиотеки в lib
(в стандартной среде), так как только определенный набор предварительно загружен в движок приложения (и, следовательно, предположительно облачный SDK?), но когда я пытаюсь импортировать некоторые из предварительно загруженные библиотеки, такие как flask
или futures
(которые также установлены в этой среде python, они также не работают).
Как мне заставить библиотеки Google Cloud Client работать в Cloud SDK?
Что еще я пробовал
Я попытался добавить конкретную версию python в свой PYTHONPATH, на случай, если это было связано с Anaconda, управляющим моим путем, однако тогда Python полностью:
Error processing line 1 of C:\Users\dominic\Anaconda3\lib\site-packages\matplotlib-2.0.2-py3.6-nspkg.pth:
Failed to import the site module
Traceback (most recent call last):
File "C:\Users\dominic\Anaconda3\lib\site.py", line 168, in addpackage
exec(line)
File "<string>", line 1, in <module>
File "C:\Users\dominic\Anaconda3\lib\types.py", line 171, in <module>
import functools as _functools
File "C:\Users\dominic\Anaconda3\lib\functools.py", line 21, in <module>
from collections import namedtuple
File "C:\Users\dominic\Anaconda3\lib\collections\__init__.py", line 32, in <module>
from reprlib import recursive_repr as _recursive_repr
File "C:\Users\dominic\Anaconda3\envs\py27\Lib\site-packages\reprlib\__init__.py", line 7, in <module>
raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.
Мне нужно сохранить Anaconda в качестве основной установки Python (для рабочих целей), но я также хотел бы иметь возможность разрабатывать с помощью Cloud SDK.
Окружающая среда
- Windows 7
- Anaconda для установки Python.
- Python 3.6 - основная версия
- У меня есть среда conda py27, в которой я разрабатываю.
- Google Cloud SDK установлен и аутентифицирован
google-cloud-bigquery
установлен в py27