基本上,问题已经在那里。我使用miniconda为项目创建了环境。现在,我想包括一些模块,这些模块捆绑在此环境中的目录中。所以我要做的就是将目录放在'''/miniconda/env/..../sitepackages/mymodule/'''目录中。当我从命令行运行模块时,我当前的工作目录就是该目录。我只要激活此conda环境并在其他目录中工作,就会告诉我ModuleNotFoundError: No module named 'stdiio'
希望这很有道理,或多或少地弄清了这个问题。任何帮助将不胜感激。
答案 0 :(得分:1)
如果您是在 Windows 上使用Python,那么最好通过在系统变量中添加 PYTHONPATH
来解决此问题,或者如果已经使用它了设置,则可能需要将文件夹路径附加到变量。
如果您不知道如何访问系统变量,或者对如何根据需要调整 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
),则会遇到令人困惑的问题。
安装应该是首选选项,如果需要使用PYTHONPATH
,set it in an env-specific manner using activation hooks。