如何将自己的模块添加到Anaconda环境

时间:2019-10-20 17:15:54

标签: python module anaconda virtualenv python-import

基本上,问题已经在那里。我使用miniconda为项目创建了环境。现在,我想包括一些模块,这些模块捆绑在此环境中的目录中。所以我要做的就是将目录放在'''/miniconda/env/..../sitepackages/mymodule/'''目录中。当我从命令行运行模块时,我当前的工作目录就是该目录。我只要激活此conda环境并在其他目录中工作,就会告诉我ModuleNotFoundError: No module named 'stdiio'

希望这很有道理,或多或少地弄清了这个问题。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果您是在 Windows 上使用Python,那么最好通过在系统变量中添加 PYTHONPATH 来解决此问题,或者如果已经使用它了设置,则可能需要将文件夹路径附加到变量。

Picture

如果您不知道如何访问系统变量,或者对如何根据需要调整 PYTHONPATH 感到困惑,则可以查看此StackOverflow问题,该问题有几个深入的答案,解释了如何在Windows上设置/更新PYTHONPATH: How to add to the PYTHONPATH in Windows, so it finds my modules/packages?

答案 1 :(得分:0)

如果模块是可安装的(例如,您有setup.py),则可以激活Conda env并使用pip进行安装:

conda activate -n myenv
pip install /some/path/to/mymodule

如果您正在积极开发模块,请改用pip install -e

如果模块不是可安装的,而是仅包含__init__.py个文件的某些源文件夹,则另一种选择是将包含文件夹添加到PYTHONPATH。例如,如果您的模块位于/some/path/to/mymodule中,则可以使用

export PYTHONPATH="/some/path/to:$PYTHONPATH"

请注意PYTHONPATH-如果您允许相互冲突的外部模块“泄漏”到Conda环境中(例如,从另一个Python安装中添加site-packages),则会遇到令人困惑的问题。

安装应该是首选选项,如果需要使用PYTHONPATHset it in an env-specific manner using activation hooks