Anaconda:永久包含外部包(如在 PYTHONPATH 中)
Anaconda: Permanently include external packages (like in PYTHONPATH)
我知道如何使用 conda install
在 Anaconda 中安装软件包以及如何安装 PyPi which is described in the manual.
上的软件包
但是我如何才能将 packages/folders 永久包含在 Anaconda 环境的 PYTHONPATH
中,以便可以导入我当前正在处理的代码并在重新启动后仍然可用?
我目前的做法是使用sys
:
import sys
sys.path.append(r'/path/to/my/package')
不太方便。
有什么提示吗?
提前致谢!
我在 Anaconda forum 中找到了我的问题的两个答案:
1.) 将模块放入站点包中,即始终位于 sys.path
上的目录 $HOME/path/to/anaconda/lib/pythonX.X/site-packages
。这也应该通过创建一个符号 link.
来工作
2.) 添加一个.pth
文件到目录$HOME/path/to/anaconda/lib/pythonX.X/site-packages
。这可以命名为任何名称(它必须以 .pth
结尾)。 .pth
文件只是一个以换行符分隔的目录完整路径名列表,这些目录将在 Python 启动时添加到您的路径中。
或者,如果您只想link到特定的conda环境,那么将.pth文件添加到~/anaconda3/envs/{NAME_OF_ENVIRONMENT}/lib/pythonX.X/site-packages/
两者都很简单,我选择了第二个选项,因为它更灵活。
*** 更新:
3.) 使用conda develop i。 e. conda-develop /path/to/module/
以添加创建 .pth
文件的模块,如选项 2 中所述。)。
4.) 创建一个 setup.py in the folder of your package and install it using pip install -e /path/to/package
which is the cleanest option from my point of view because you can also see all installations using pip list
. Note that the option -e
allows to edit the package code. See here 以获取更多信息。
谢谢!
只是添加到上面的 Cord Kaldemeyer 的回答中,用于第二个选项。如果您只想 link 到特定的 conda 环境,请将 .pth 文件添加到 ~/anaconda3/envs/{NAME_OF_ENVIRONMENT}/lib/pythonX.X/site-packages/
我可以使用以下方法包含本地模块:
conda-develop /path/to/module/
希望对您有所帮助。
我认为最适合 conda
的方法是根据官方文档 here 在我的环境中创建 env_vars.sh
文件。
对于macOS和Linux用户,步骤如下:
转到您的环境文件夹(例如 /miniconda1/env/env_name
)。 $CONDA_PREFIX
是您的环境路径的环境变量。
cd $CONDA_PREFIX
创建 activate.d
和 deactivate.d
目录。
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
在每个目录中,创建一个 env_vars.sh
文件。当您 conda activate
您的环境时,activate.d
目录中的那个将设置(或 export
)您的环境变量。当您 conda deactivate
您的环境时,deactivate.d
目录中的文件将用于取消设置环境变量。
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh
首先编辑 $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
到 export
所需的环境变量。
#!/bin/sh
export VAR_A='some-thing-here'
export VAR_B=/path/to/my/file/
之后,打开编辑$CONDA_PREFIX/etc/conda/deactivate/env_vars.sh
,以便unset
环境变量当你conda deactivate
像这样:
#!/bin/sh
unset VAR_A
unset VAR_B
同样,我的描述来源直接来自 conda
文档 here。
我知道如何使用 conda install
在 Anaconda 中安装软件包以及如何安装 PyPi which is described in the manual.
但是我如何才能将 packages/folders 永久包含在 Anaconda 环境的 PYTHONPATH
中,以便可以导入我当前正在处理的代码并在重新启动后仍然可用?
我目前的做法是使用sys
:
import sys
sys.path.append(r'/path/to/my/package')
不太方便。
有什么提示吗?
提前致谢!
我在 Anaconda forum 中找到了我的问题的两个答案:
1.) 将模块放入站点包中,即始终位于 sys.path
上的目录 $HOME/path/to/anaconda/lib/pythonX.X/site-packages
。这也应该通过创建一个符号 link.
2.) 添加一个.pth
文件到目录$HOME/path/to/anaconda/lib/pythonX.X/site-packages
。这可以命名为任何名称(它必须以 .pth
结尾)。 .pth
文件只是一个以换行符分隔的目录完整路径名列表,这些目录将在 Python 启动时添加到您的路径中。
或者,如果您只想link到特定的conda环境,那么将.pth文件添加到~/anaconda3/envs/{NAME_OF_ENVIRONMENT}/lib/pythonX.X/site-packages/
两者都很简单,我选择了第二个选项,因为它更灵活。
*** 更新:
3.) 使用conda develop i。 e. conda-develop /path/to/module/
以添加创建 .pth
文件的模块,如选项 2 中所述。)。
4.) 创建一个 setup.py in the folder of your package and install it using pip install -e /path/to/package
which is the cleanest option from my point of view because you can also see all installations using pip list
. Note that the option -e
allows to edit the package code. See here 以获取更多信息。
谢谢!
只是添加到上面的 Cord Kaldemeyer 的回答中,用于第二个选项。如果您只想 link 到特定的 conda 环境,请将 .pth 文件添加到 ~/anaconda3/envs/{NAME_OF_ENVIRONMENT}/lib/pythonX.X/site-packages/
我可以使用以下方法包含本地模块:
conda-develop /path/to/module/
希望对您有所帮助。
我认为最适合 conda
的方法是根据官方文档 here 在我的环境中创建 env_vars.sh
文件。
对于macOS和Linux用户,步骤如下:
转到您的环境文件夹(例如
/miniconda1/env/env_name
)。$CONDA_PREFIX
是您的环境路径的环境变量。cd $CONDA_PREFIX
创建
activate.d
和deactivate.d
目录。mkdir -p ./etc/conda/activate.d mkdir -p ./etc/conda/deactivate.d
在每个目录中,创建一个
env_vars.sh
文件。当您conda activate
您的环境时,activate.d
目录中的那个将设置(或export
)您的环境变量。当您conda deactivate
您的环境时,deactivate.d
目录中的文件将用于取消设置环境变量。touch ./etc/conda/activate.d/env_vars.sh touch ./etc/conda/deactivate.d/env_vars.sh
首先编辑
$CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
到export
所需的环境变量。#!/bin/sh export VAR_A='some-thing-here' export VAR_B=/path/to/my/file/
之后,打开编辑
$CONDA_PREFIX/etc/conda/deactivate/env_vars.sh
,以便unset
环境变量当你conda deactivate
像这样:#!/bin/sh unset VAR_A unset VAR_B
同样,我的描述来源直接来自 conda
文档 here。