2016-03-02 6 views
0

Я был в этом в течение дня и не нашел решения. Мой проект python очень глубокий, и некоторые из модулей должны запускаться независимо (флаг no -m, без относительного импорта). По этой причине мы решили добавить корневую папку в PYTHONPATH. Я запускаю OSX 10.11.3. Все прошло гладко до вчерашнего дня. Я мог запускать независимые модули из терминала без проблем в обоих версиях Python 2.7 и 3.5. Вчера, не изменяя мой PYTHONPATH или любой другой параметр среды, под управлением любой из этих независимых модулей от терминала теперь дает мне ошибки импорта в обоих Python 2 и 3.

Вот мое рабочее дерево:

/Users/sintrafico/Documents/code/central_maestra 
- reports_server.py 
- api_server.py 
- sintrafico 
    - sql 
     - SQLConnection 
    - api 
     - incident 
      - csv (not package) 
       - independent_module 
      - tests 

Вчера я тестировал свои тесты без проблем, но теперь я не могу.

Python 2 python csv/independent_module.py дает ошибку:

Traceback (most recent call last): 
    File "csv/independent_module.py", line 13, in <module> 
    from sintrafico.sql import SQLConnection 
ImportError: No module named sintrafico.sql 

Python 3 python3 csv/independent_module.py дает ошибку:

Traceback (most recent call last): 
    File "csv/create_bemobile_csv.py", line 13, in <module> 
    from sintrafico.sql import SQLConnection 
ImportError: No module named 'sintrafico' 

В папке инцидента, вчера эта команда работает отлично: coverage run -m unittest discover. Теперь все тесты терпят неудачу, потому что ImportError: No module named 'reports_server'.

С тех пор, как это началось вчера, я возился с моим PYTHONPATH. Я оставил это поле пустым, и он не работает (как и ожидалось), я добавил путь Теперь несколько способов:

  • export PYTHONPATH=“${PYTHONPATH}:/Users/sintrafico/Documents/code/central_maestra"
  • export PYTHONPATH=“/Users/sintrafico/Documents/code/central_maestra:${PYTHONPATH}"
  • export PYTHONPATH=“${PYTHONPATH}:/Users/sintrafico/Documents/code/central_maestra/"
  • export PYTHONPATH=“/Users/sintrafico/Documents/code/central_maestra:${PYTHONPATH}"

И также устанавливая его, не добавляя PYTHONPATH, поскольку он был пуст для начала. Я несколько раз перезапускал свой компьютер без каких-либо успехов. Также обратите внимание, что у меня есть .bash_profile и .bashrc со следующим содержанием:

# Setting PATH for Python 3.5 
# The orginal version is saved in .bash_profile.pysave 
PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}" 
export PATH 
PYTHONPATH=“/Users/sintrafico/Documents/code/central_maestra:${PYTHONPATH}“ 
export PYTHONPATH 

И, наконец, какие ошибки меня не больше всего, что если я запускаю тесты внутри PyCharm они все бегут и проходят, я не импорт ошибки вообще.

+0

Вы пытались установить путь без кавычек и фигурных скобок? Возможно, вы устанавливаете путь python как строковое представление пути. –

+0

У меня нет, я попробую прямо сейчас. Спасибо – gamda

+0

@JaseRieger большое вам спасибо! Вот и все. Coverage и Python могут снова запускать тесты с терминала, и я могу запускать независимые модули. Я не уверен, почему это произошло, так как я не модифицировал файлы .bash примерно через неделю, поэтому я предположил, что это не проблема. – gamda

ответ

1

Вы пробовали установить путь без кавычек и брекетов? Вы устанавливаете путь python как строковое представление пути, а не список путей.

 Смежные вопросы

  • Нет связанных вопросов^_^