2017-09-19 67 views
12

Kiedy próbuję zaimportować wiązkę Apache, pojawia się następujący błąd.import apache_beam metaclass conflict

>>> import apache_beam 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/toor/pfff/local/lib/python2.7/site-packages/apache_beam/__init__.py", line 78, in <module> 
    from apache_beam import io 
    File "/home/toor/pfff/local/lib/python2.7/site-packages/apache_beam/io/__init__.py", line 21, in <module> 
    ... 
    from apitools.base.protorpclite import messages 
    File "/home/toor/pfff/local/lib/python2.7/site-packages/apitools/base/protorpclite/messages.py", line 1165, in <module> 
    class Field(six.with_metaclass(_FieldMeta, object)): 
TypeError: Error when calling the metaclass bases 
    metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases 

pracuję w nowym środowisku wirtualnym, w którym został zainstalowany apache_beam instalując google-cloud przepływu danych z pip jak muszę wersję, która jest w stanie uruchomić na platformie Google Cloud.

pip install google-cloud-dataflow

nie mam pojęcia jak rozwiązać ten błąd. Dla kompletności używam Pythona 2.7.12 na bash na Ubuntu w systemie Windows. Mój kolega miał ten sam błąd podczas uruchamiania go na bash na Ubuntu w systemie Windows, podczas gdy bezpośrednio działa w systemie Windows działa dobrze.

Zainstalowane wersje pakietów są:

>>> pip freeze 
apache-beam==2.1.0 
avro==1.8.2 
cachetools==2.0.1 
certifi==2017.7.27.1 
chardet==3.0.4 
crcmod==1.7 
dill==0.2.6 
enum34==1.1.6 
funcsigs==1.0.2 
future==0.16.0 
futures==3.1.1 
gapic-google-cloud-pubsub-v1==0.15.4 
google-apitools==0.5.11 
google-auth==1.1.0 
google-auth-httplib2==0.0.2 
google-cloud-bigquery==0.25.0 
google-cloud-core==0.25.0 
google-cloud-dataflow==2.1.0 
google-cloud-pubsub==0.26.0 
google-gax==0.15.15 
googleapis-common-protos==1.5.2 
googledatastore==7.0.1 
grpc-google-iam-v1==0.11.3 
grpcio==1.6.0 
httplib2==0.9.2 
idna==2.6 
mock==2.0.0 
oauth2client==3.0.0 
pbr==3.1.1 
pkg-resources==0.0.0 
ply==3.8 
proto-google-cloud-datastore-v1==0.90.4 
proto-google-cloud-pubsub-v1==0.15.4 
protobuf==3.3.0 
pyasn1==0.3.5 
pyasn1-modules==0.1.4 
PyYAML==3.12 
requests==2.18.4 
rsa==3.4.2 
six==1.11.0 
urllib3==1.22 
+0

można podać wyjście Twój '' 'pip freeze'''? –

+0

Dodano dane wyjściowe do zamrażania pip. –

+0

Czy próbowałeś zainstalować 'install instalacji apache-beam [gcp]' ''? –

Odpowiedz

19

sześć Downgrade do wersji 1.10.0

pip install six==1.10.0 
+0

Dzięki temu rozwiązaliśmy ten problem. –

+2

Małe wyjaśnienie z pewnością byłoby miłe. –

+4

Po zainstalowaniu belki Apache, sześć jest również instalowane, gdy nie jest jeszcze zainstalowane. Wygląda na to, że zainstalowana jest najnowsza wersja, która trwa od 2017-09-17 1.11.0, podczas gdy promień Apache wciąż działa z 1.10.0. –