使用 pip 安装 python 项目时缺少模块

Modules missing when installing python project using pip

我正在部署我的第一个 python 项目,但遇到安装问题。我遵循了 https://packaging.python.org/guides/distributing-packages-using-setuptools/#uploading-your-project-to-pypi 中概述的做法。我的项目是用一个顶级可执行脚本 bin/gsat 组织的,该脚本调用导入其他模块,如下所示:

import gsat.input_validation as input_validation

模块在 src/gsat/ 中,遵循 https://github.com/pypa/sampleproject

示例项目中的安排

如果我从项目源本地安装,使用开发模式:

pip install -e .

...那么我的安装没有问题,软件可以正常工作。

但是如果我从 PyPI 安装它:

pip install "gsat"

... 那么它不会 运行 因为导入语句找不到模块。错误:

  File "/Library/Frameworks/Python.framework/Versions/3.7/bin/gsat", line 10, in <module>
    import gsat.input_validation as input_validation
ModuleNotFoundError: No module named 'gsat'

完整项目位于 https://github.com/MikeAxtell/gsat ,提交 c680172。该项目也在 PyPI 上作为 "gsat"。分发文件制作如下:

python3 setup.py sdist bdist_wheel

... 有趣的 setup.py 文件在下面。我确定这是一些菜鸟问题;我是 python 打包和 python 编程的新手,所以在此先感谢您的帮助!

setup.py:


with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="gsat", 
    version="0.1a",
    author="Michael J. Axtell",
    author_email="mja18@psu.edu",
    description="General Small RNA-seq Analysis Tool",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/MikeAxtell/gsat",
    scripts=['bin/gsat'],
    package_dir={'': 'src'},
    packages=setuptools.find_packages(where='gsat'),
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    python_requires='>3.5, <4',
    install_requires=['biopython','python-Levenshtein'],
)

这一行似乎有问题:

packages=setuptools.find_packages(where='gsat'),

我认为应该改为阅读以下内容:

packages=setuptools.find_packages(where='src'),