我知道如何使用Anaconda的安装软件包conda install以及如何安装上的包的PyPI这是在描述手册.
但是,如何将包/文件夹永久地包含PYTHONPATH在Anaconda环境中,以便我可以导入当前正在处理的代码,并且在重新启动后仍然可用?
我目前的做法是使用sys:
import sys
sys.path.append(r'/path/to/my/package')
Run Code Online (Sandbox Code Playgroud)
这不是很方便.
任何提示?
提前致谢!
Cor*_*yer 53
我在Anaconda论坛上找到了我的问题的两个答案:
1.)将模块放入site-packages中,即$HOME/path/to/anaconda/lib/pythonX.X/site-packages始终打开的目录sys.path.这也可以通过创建符号链接来实现.
2.)将.pth文件添加到目录中$HOME/path/to/anaconda/lib/pythonX.X/site-packages.这可以命名为任何东西(它必须以...结尾.pth).一个.pth文件就是目录将被添加到在Python启动您的路径的完整路径,名称的换行分隔上市.
两者都很直接,我选择了第二个选项,因为它更灵活.
***更新:
3.)在软件包的文件夹中创建一个setup.py并使用~/anaconda3/envs/{NAME_OF_ENVIRONMENT}/lib/pythonX.X/site-packages/它从我的角度安装它是最干净的选项,因为你也可以看到所有使用的安装conda-develop /path/to/module/.
不管怎么说,还是要谢谢你!
小智 10
我可以使用以下方法包含本地模块:
conda-develop /path/to/module/
Run Code Online (Sandbox Code Playgroud)
我希望它有帮助。
小智 5
首选的解决方案是构建自己的conda程序包(此处的信息)。
另一个解决方案是在包目录和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/
Run Code Online (Sandbox Code Playgroud)
上面的链接将允许您从任何目录在anaconda的默认环境中导入软件包。这不会影响任何其他环境。
如果要将软件包添加到anaconda中的特定环境(例如-“ myenv”),则可以将软件包链接到该特定环境的sys路径之一:
ln -s /path/to/my/package /path/to/anaconda/env/myenv/lib/python2.7/site-packges/
Run Code Online (Sandbox Code Playgroud)
请注意以下几点:
该-s标志生成一个软链接(非常类似于快捷方式)。如果您移动软件包目录,则该链接将无法工作。在ln没有-s标志的情况下运行会生成一个硬链接(如镜像副本),该链接不会受到移动(甚至删除...)软件包目录的影响。软链接和硬链接的优缺点在这里讨论
Windows用户应使用mklink。有关信息,请参见此处。
| 归档时间: |
|
| 查看次数: |
34708 次 |
| 最近记录: |