无法从模块目录外部导入个人 python 模块(使用 pip -e 安装)

时间:2021-03-23 09:50:42

标签: python pip

我正在开发一个供内部使用的包,并且该包有一个 setup.py 文件(见下文)。我有点困惑,因为当我安装我的包时(在环境中&处于可编辑模式,所以更改会在我开发它时得到反映),如果我在开发目录中,导入工作,但从任何其他目录中说“找不到包”目录。 此外,pip list 显示了包。

要安装,我执行以下操作:

~ > cd path/to/package
package > conda activate env
package (env) > pip install -e .

安装包。现在,问题是

package (env) > python -c "import mypackage" # works!
package (env) > cd
~ (env) > python -c "import mypackage" # error!
~ (env) > pip list | grep "mypackage"
mypackage 0.1.0

发生了什么?文档说

<块引用>

-e, --editable

从本地项目路径或 VCS 网址以可编辑模式(即 setuptools“开发模式”)安装项目。

这并没有真正告诉我它应该只在所说的本地项目路径中工作......

setup.py
import os
import sys

from setuptools import find_packages, setup


def read(fname):
    return open(os.path.join(os.path.dirname(__file__), fname)).read()

LICENSE = "MIT"


setup(
    name="name",
    version="0.1.0",
    author="organization",
    description="...",
    long_description=read('README.md'),
    packages=find_packages(),
    license=LICENSE,
    classifiers=[
        ...
    ],
)

1 个答案:

答案 0 :(得分:-1)

您需要将您的模块所在的位置添加到系统路径中

import sys
sys.path.append(yourPathHere)

import yourModule

编辑 - 为清楚起见 - 以上内容进入调用模块的 .py,而不是用于编译它的 setup.py。

嗯 - 我看到您的环境确实通过 grep 看到了它。那就无视以上吧!!