2017-07-18 48 views
0

我使用下面的解決方案導入依賴關係。 我發現這個解決方案工作,如果我在Pycharm中運行的代碼,但不是在終端。 終端中的錯誤信息是「can not find graphics.primitive」。 我正在使用Mac和Python 3.5。 爲什麼我看到終端和Pycharm的不同行爲? 我該如何讓解決方案適用於兩者?導入依賴項在Pycahrm中不起作用?


http://chimera.labs.oreilly.com/books/1230000000393/ch10.html#_solution_169

製作模塊 問題的分層包

你想組織你的代碼組成模塊的分層集合的包。

解決方案

製作包裝結構很簡單。只需在文件系統上按照您的希望組織代碼,並確保每個目錄都定義了init .py文件。例如:

graphics/ 
    __init__.py 
    primitive/ 
     __init__.py 
     line.py 
     fill.py 
     text.py 
    formats/ 
     __init__.py 
     png.py 
     jpg.py 

一旦你做到了這一點,你應該能夠執行各種import語句,如下列:

import graphics.primitive.line 
from graphics.primitive import line 
import graphics.formats.jpg as jpg 

回答

1

您需要確保該圖形包中Python搜索路徑。 PyCharm做到這一點通過擴展sys.path如下:

import sys  
sys.path.extend(['/Users/hackworth/Development/graphics_parent_dir', '/Applications/PyCharm.app/Contents/helpers/pycharm', '/Applications/PyCharm.app/Contents/helpers/pydev']) 

你可以做同樣的在你的代碼與相應的路徑替換/Users/hackworth/graphics_parent_dir,也可以包含完整路徑PYTHONPATH環境變量graphics_parent_dir。有關詳細信息,請參閱Python documentation

另一種選擇是將graphics軟件包放置到系統默認搜索的位置。