使用 pip install 安装本地包。没有 -e 标志不起作用

Installing local package with pip install . doesn't work without -e flag

我写了一个小的 python 包,我想通过 pip 在本地安装它。我过去常常通过导航到带有 setup.py 文件的包目录,然后导航到 运行 pip install . 来完成此操作,之后 pip 安装程序完成循环并通知我它已成功安装包.当我检查 pip freeze 时,它确实列在那里。但是,当我随后启动 Python 解释器并尝试导入我的包时,它会抛出一个 ModuleNotFoundError.

但是,当我通过 pip install -e . 安装时,情况并非如此,导入没有问题。

我已经在其他软件包中多次使用这种方法,但我似乎无法找到为什么它在这个特定时间总是失败。我已经用 2 个不同的 virtualenv 尝试过,证实我每次都使用了正确的解释器,但无济于事。

感谢您的帮助!

我已经解决了这个问题!它基于 this solution.

我写了一个 setup.py 文件,但是在 setup 部分我没有包含 packages=find_packages()。因此,它只安装了有关包的一些信息,而没有安装包本身。这就是它出现在 pip freeze 中但无法导入的原因。

我的设置现在看起来像这样

setup(
    name='package name',
    version=__version__,
    description='package description',
    long_description=readme,
    author='my name',
    author_email='my mail',
    url='https://link_to_github_site.com',
    packages=find_packages(),
    license=license
)