【问题标题】:How to add my own Module to my Anaconda environment如何将我自己的模块添加到我的 Anaconda 环境中
【发布时间】:2020-02-16 21:34:47
【问题描述】:

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

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

【问题讨论】:

    标签: python module anaconda virtualenv python-import


    【解决方案1】:

    如果您的模块是可安装的(例如,您有一个setup.py),那么您可以激活您的 Conda 环境并使用 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。

    【讨论】:

    • 非常感谢!!真的帮助收拾东西!如果我只是将包含大量 .py(虽然没有 init.py)文件的文件夹复制到我的 conda 环境的 site-packes 文件夹中,该怎么办?当我使用这个特定的 conda 环境时,我还能将 .py-modules 从那里导入另一个模块吗?
    • @RobinKohrs 我认为您需要拥有__init__.py 才能将其识别为模块。
    • 非常感谢!我试试看;)
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-03-20
      • 2019-04-26
      • 2017-04-17
      • 2019-06-03
      • 2019-12-15
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      • 2021-08-05
      相关资源
      最近更新 更多