我在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启动时将被添加到您的路径中。
或者,如果你只想链接到特定的conda环境,那么将.pth文件添加到~/anaconda3/envs/{NAME_OF_ENVIRONMENT}/lib/pythonX.X/site-packages/
。
两种方法都很简单,我选择了第二种选项,因为它更加灵活。
*** 更新:
3.) 使用conda develop,即conda-develop /path/to/module/
来添加该模块,它会创建一个如选项2中描述的.pth
文件。
4.) 在您的软件包文件夹中创建一个setup.py,并使用pip install -e /path/to/package
进行安装,这是我认为最清洁的选项,因为您还可以使用pip list
查看所有安装。请注意,选项-e
允许编辑软件包代码。这里提供了更多信息。
无论如何,谢谢!
Windows vs. Linux
实现方式不同。在Windows下,Python构建sys.path
时查找的位置略有不同。请参见https://docs.python.org/3/library/site.html。我相信在Windows中路径应该是`....path_to_anaconda/lib/site-packages`(大小写在Windows中也无关紧要)。 - mjvconda install conda-build
。 - user108569我可以使用以下方式来包含本地模块:
conda-develop /path/to/module/
我希望它能有所帮助。
.pth
文件,如 2.) 中所述。 - Cord Kaldemeyer我认为最符合conda
的本地化方式是在我的环境中创建env_vars.sh
文件,如官方文档这里所述。
对于macOS和Linux用户,步骤如下:
Go to your environment folder (e.g. /miniconda1/env/env_name
). $CONDA_PREFIX
is the environemnt variable for your environment path.
cd $CONDA_PREFIX
Create the activate.d
and deactivate.d
directories.
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
Inside the each respective directory, create one env_vars.sh
file. The one in the activate.d
directory will set (or export
) your environment variables when you conda activate
your environment. The file in the deactivate.d
directory will serve to unset the environment variables when you conda deactivate
your environment.
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh
First edit the $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
to export
the desired environment variables.
#!/bin/sh
export VAR_A='some-thing-here'
export VAR_B=/path/to/my/file/
Afterwards, open to edit the $CONDA_PREFIX/etc/conda/deactivate/env_vars.sh
, in order to unset
the env variables when you conda deactivate
like so:
#!/bin/sh
unset VAR_A
unset VAR_B
再次声明,我描述的内容直接来自 conda
文档,请在此处查看。
补充 Cord Kaldemeyer 上面的回答,关于第二个选项。如果你只想链接到特定的 conda 环境,那么请将 .pth 文件添加到 ~/anaconda3/envs/{NAME_OF_ENVIRONMENT}/lib/pythonX.X/site-packages/
。
conda
和pip
没有将它们本地安装到正确的conda环境中(在这种情况下,请执行conda activate/deactivate
直到进入正确的Python环境,您可能在conda中有几个环境),还是b) 您想手动捆绑第三方软件包与您的软件包(?听起来像一个可怕的想法,只需定义软件包依赖项)。 “永久”是什么意思,在哪台机器上? - smci