2016-11-02 193 views
0

我無法讓模塊在Canopy中對python可見。具體來說,在Canopy打開的文件中的python代碼中,出現錯誤「No Module named -----」 在閱讀了stackoverflow上的其他幾個答案之後,我確實使用了終端命令「export PATH =/Users/TheSlothQueen /圖書館/ Enthought/Canopy_32bit /用戶/箱:$ {PATH}」。 (據我所知,使Canopy成爲默認的python環境)。這一直奏效,因爲現在如果我在終端中鍵入start python並且「import sys」然後是「sys.prefix」,Enthought Canopy確實顯示爲python路徑。無法訪問Canopy中的python模塊?

遵循這些(https://support.enthought.com/hc/en-us/articles/204469690-Installing-packages-into-Canopy-User-Python-from-the-OS-command-line)說明,我現在應該能夠使用enpkg命令而不是pip install。但是,這需要我登錄到天篷,我不認爲我有會員資格。

我能做些什麼呢?在將缺省Python路徑更改爲Canopy環境之前,我可以將Openpyxl安裝到Library/Python/2.7/site-packages中,並且它顯然存在,但Canopy中的python文件中的「import openpyxl」命令仍然無法訪問它。

我不是很擅長使用命令行,而且是Canopy的新手,但在Python中相當有經驗。任何幫助,將不勝感激。

回答

0

如果你不想使用enpkg或註冊一個免費賬戶雨棚:

建立一個.pth文件在您雨棚site-packages/Users/TheSlothQueen/Library/Enthought/Canopy_32bit/User/lib/python2.7/site-packages包含路徑到你的正常的Python site-packages。請參閱https://gis.stackexchange.com/questions/59012/how-to-access-esri-arcpy-modules-from-enthought-canopy/59144#59144

+0

這很有道理。顯然我沒有任何Enthought文件夾在庫中。我需要在那裏創建一個嗎? – XJS

+0

我強烈建議您不要採用這種方法,這會導致易碎的配置。備選答案即將到來。 –

0

1)通常,您不應該複製或鏈接Python分發,這可能會導致不明原因的崩潰以及由於不兼容的依賴關係而導致的其他錯誤。相反,每個Python發行版應該是獨立的。當你沒有其他選擇的情況下(例如在@CenttiCAL的答案中提到的ArcGIS示例)時,很少有情況,但只能作爲最後的手段。

因此,如果您想要將相同的軟件包安裝到多個Python發行版中(例如在您的系統python和Canopy Python中使用openpyxl),您應該將其獨立安裝到每個發行版中。我稍後會對此進行描述,但首先值得切切提及另一種情況 - 如果您在Python分發之外的目錄中開發自己的代碼(或使用同事的代碼),則可以設置您的PYTHONPATH環境變量到該目錄,這將允許您通過Python分發來訪問它,通常是安全的。

2)既然你說你在命令行不太舒服,爲什麼不從Canopy的Package Manager安裝openpyxl呢?除了一些邊緣情況下的問題,這相當於使用enpkg

3)要登錄到雨棚或enpkg,註冊一個賬號是免費的:https://enthought.com/accounts/login/

4)如果你要通過命令行安裝你的包,你所引用的文章是好的。請注意,將Canopy作爲終端默認Python的最簡單方法是從Canopy Tools菜單打開Canopy終端。其他方式請參閱this article