【问题标题】:Python packaging with setuptools does not include my source code when installing安装时使用 setuptools 打包的 Python 不包含我的源代码
【发布时间】:2020-06-20 13:54:42
【问题描述】:

我正在尝试将 python 程序制作成一个包: 这是我的 setup.py

from setuptools import setup, find_packages

setup(
    name='scroll',
    version='2020.6.14',
    # package_dir={'': 'scroll'},
    packages=find_packages(),
    install_requires=[
        'Click',
    ],
    entry_points='''
        [console_scripts]
        scroll=scroll:scroll
    ''',
    # .... all other stuff
)

这是模块结构,

SCROLL
  - scroll/
      |
      +--scroll.py
  - setup.py
  - MANIFEST.in
  - venv/

当我运行python setup.py sdist 时,会创建一个tar.gz 文件,提取时它包含projects\SCROLL\dist\scroll-2020.6.14\dist_scroll-2020.6\scroll-2020.6.14\scroll 处的源代码

但是当我使用pip install ./dist/scroll-2020.6.14.tar.gz 安装存档时, 运行scroll 产生ModuleNotFoundError: No module named 'scroll' 这是因为在安装过程中,源代码没有复制到SCROLL\venv\lib\python3.8\site-packages\

手动将滚动文件夹复制到site-packages 即可解决此错误

我尝试使用MANIFEST.in 文件,内容如下,但代码仍未复制到site-packages

include scroll
recursive-include scroll *.py

【问题讨论】:

    标签: python pip setuptools python-packaging python-click


    【解决方案1】:

    我通过使用flit 打包模块解决了这个问题。刚问完才发现它也可以创建脚本。

    操作方法:

    参考https://setuptools.readthedocs.io/en/latest/setuptools.html#automatic-script-creation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-20
      • 2018-12-22
      • 2010-12-16
      • 1970-01-01
      • 2013-06-04
      • 2016-06-24
      • 2022-01-02
      • 1970-01-01
      相关资源
      最近更新 更多