【问题标题】:Subfolder in Python package not visible when installedPython包中的子文件夹在安装时不可见
【发布时间】:2021-06-19 14:24:36
【问题描述】:

给定一个具有以下结构的 Python 包。

pip安装它

pip install --upgrade git+git://github.com/balandongiv/driving_tools.git

安装目录如下所示

如上图,安装文件夹中缺少sub_filenickname_override.py子文件夹。

我想知道修改这个问题需要什么修改吗?

根据Balaitous进行修改

from setuptools import setup,find_packages

setup(name='ppackage',
    version='0.0.111',
    description='make life easier',
    author='testx',
    packages=['ppackage','ppackage.sub_file'],
)

【问题讨论】:

  • 检查 gitignore。还有一种方法。鼠标右键并单击从 Git 子菜单中添加
  • 嗨@AndyPavlov,我想知道具体检查什么,谢谢
  • 请列出你的 gitignore。反正。尝试在nickname_override.py 中进行任何更改并从pycharm 提交。你在 pycharm 的提交/推送窗口看到任何变化吗?

标签: python package


【解决方案1】:

setup 函数的packages 参数中,必须明确提及所有模块。模块可以是python文件或包含__init__.py的文件夹。

它不是递归的。这里有两个模块ppackageppackage.sub_folder

见:https://docs.python.org/3/distutils/setupscript.html#listing-whole-packages

所以你应该有:

setup(
    name=...,
    packages=["ppackage", "ppackage.sub_folder"],
    ...
)

如果你想在你的包中嵌入所有模块,你可以使用find_packages

from setuptools import find_packages

setup(
    packages=find_packages(),
    ...
)

【讨论】:

  • 感谢您的努力,但两种方法都不起作用
  • 在您的 screnhot 上,setup.py 似乎在 ppackage 中,而在 github 上它位于顶层。好地方在顶层。
  • 嗨@Balai,这两个建议都不起作用,谢谢。你有没有在你身边证实过这一点?
  • 分叉到github.com/adelplanque/driving_tools 之后似乎工作了。
  • 能否分享安装文件夹的截图
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多