2017-07-25 4 views
0

Das ist meine Projektstruktur:GCP: PYTHONPATH vermasselte, wenn Programm läuft durch „gcloud ml-Motor Nahverkehrszug“

└──myfolder 
    └──myproject 
     ├── __init__.py 
     ├── tester.py 
     ├── learners 
     │   ├── __init__.py 
     │   ├── bag_learner.py 
     │   ├── dqn_learner.py 
     │   ├── q_learner.py 
     │   ├── q_learner.pyc 
     │   ├── stock_dqn_learner.py 
     │   ├── stock_q_base_learner.py 
     │   └── stock_q_learner.py 
     └── utility 
      ├── __init__.py 
      ├── analysis.py 
      └── util.py 

ich in der Regel laufe Programm von python tester.py bei myproject Verzeichnis.

Jetzt versuche ich, dieses Programm über gcp Befehl auszuführen. Was ich tat, war, zu myfolder Verzeichnis zu gehen und Programm durch gcloud ml-engine local train --module-name=myproject.tester --package-path=myproject laufen zu lassen. Aber es ist ein Fehler aufgetreten:

File "myproject/learners/q_learner.py", line 6, in <module> 
    from utility import * 
ImportError: No module named utility 

Ich dachte, dass Programm nicht myproject Verzeichnis als PYTHONPATH erkennen konnte. Also habe ich das Verzeichnis in myproject geändert und führe das Programm unter gcloud ml-engine local train --module-name=tester --package-path=./ aus. aber es trat auch einen Fehler:

/Users/Chois/.pyenv/versions/2.7.13/bin/python2: No module named tester 

Wie kann ich damit umgehen?

Antwort

1

Ist es möglich, Ihr Import so etwas wie zu sein:

import myproject.utility as utility 

Und dann gehen Sie auf dem Weg Sie auf dem war waren gcloud auszuführen Befehle mit myfolder als Arbeitsverzeichnis.

Verwandte Themen