Я следую этому руководству Google: https://cloud.google.com/bigquery/docs/reference/libraries#client-libraries-install-python И после запуска скрипта я получил ошибку:
Traceback (most recent call last):
File "/home/pyc6eh4uk/PycharmProjects/fintech_python/bq_jobs/big_query_test.py", line 2, in <module>
from google.cloud import bigquery
File "/usr/local/lib/python2.7/dist-packages/google/cloud/bigquery/__init__.py", line 32, in <module>
__version__ = get_distribution('google-cloud-bigquery').version
File "/home/pyc6eh4uk/Programms/google-cloud-sdk/platform/google_appengine/lib/setuptools-0.6c11/pkg_resources.py", line 311, in get_distribution
if isinstance(dist,Requirement): dist = get_provider(dist)
File "/home/pyc6eh4uk/Programms/google-cloud-sdk/platform/google_appengine/lib/setuptools-0.6c11/pkg_resources.py", line 197, in get_provider
return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
File "/home/pyc6eh4uk/Programms/google-cloud-sdk/platform/google_appengine/lib/setuptools-0.6c11/pkg_resources.py", line 666, in require
needed = self.resolve(parse_requirements(requirements))
File "/home/pyc6eh4uk/Programms/google-cloud-sdk/platform/google_appengine/lib/setuptools-0.6c11/pkg_resources.py", line 565, in resolve
raise DistributionNotFound(req) # XXX put more info here
pkg_resources.DistributionNotFound: google-cloud-bigquery
Поэтому я думаю, что эта проблема связана с google-cloud-sdk, которая находится в моем домашнем каталоге и пакете bigquery в /usr/local/lib/python2.7/dist-packages/google/cloud. Как избежать этого конфликта или может быть как настроить окружающая среда, которая работает google sdk и bigqery?
Я просто сделал быстрый тест, и я не могу воспроизвести это поведение. Чтобы изолировать проблему, вы можете использовать virtualenv, просто выполнив следующие действия:
- $ virtualenv test
- $ pip freeze
(убедитесь, что ничего не установлено)
- $ source test/bin/activate
- $ pip install --upgrade google-cloud-bigquery
После установки вы можете следовать руководству, которое вы используете до сих пор, и выполнять скрипт внутри виртуального. После того, как вы закончите, вы можете оставить virtualenv, запустив $ deactivate