2016-11-02 143 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