我知道如何使用conda install
在Anaconda中安装软件包,以及如何构建在manual中描述的PyPi中的软件包。Anaconda:永久包含外部软件包(例如在PYTHONPATH中)
但是我如何永久性地在Anaconda中包含软件包/文件夹,例如与我目前正在使用的代码?
我目前的做法是使用sys
:
import sys
sys.path.append(r'/path/to/my/package')
这是不是真的很方便。
任何提示?
提前致谢!
我知道如何使用conda install
在Anaconda中安装软件包,以及如何构建在manual中描述的PyPi中的软件包。Anaconda:永久包含外部软件包(例如在PYTHONPATH中)
但是我如何永久性地在Anaconda中包含软件包/文件夹,例如与我目前正在使用的代码?
我目前的做法是使用sys
:
import sys
sys.path.append(r'/path/to/my/package')
这是不是真的很方便。
任何提示?
提前致谢!
我发现了两个答案,我的问题在Anaconda forum:
1)将模块插入到站点包,即目录$HOME/path/to/anaconda/lib/pythonX.X/site-packages
它总是在sys.path
。这也应该通过创建一个符号链接来工作。
2.)将.pth
文件添加到目录$HOME/path/to/anaconda/lib/pythonX.X/site-packages
。这可以命名为任何东西(它必须以.pth
结束)。 A .pth
文件只是一个换行符分隔的目录完整路径名列表,它们将在Python启动时添加到您的路径中。
这两个工作很简单,我去了第二个选项,因为它更灵活。
无论如何,谢谢!
首选的解决方案是建立自己的conda包(信息here)。
另一种解决方案是在你的软件包目录和sys.path中的任何目录之间建立一个链接。通过这种方式,当你要求python导入你的包时,anaconda将搜索它的各种sys.path目录,它将读取你的包的链接,就好像该包在sys.path目录中一样。
使用ln
(link_name)命令可以轻松地链接目录。例如:
ln -s /path/to/my/package /path/to/anaconda/lib/python2.7/site-packages/
上述链接将允许您从任何目录的anaconda默认环境中导入您的软件包。这不会影响任何其他环境。
如果你想封装添加到特定的环境中(例如 - “myenv”)水蟒之内,您可以将包链接到的特定环境的SYS路径之一:
ln -s /path/to/my/package /path/to/anaconda/env/myenv/lib/python2.7/site-packges/
注意以下几点: