【发布时间】:2023-12-09 15:17:01
【问题描述】:
我正在尝试通过 pip(存储在 Pypi 上)提供 Django 应用程序。 问题是当我使用 pip 安装应用程序时,它不包含主指定包内的静态文件夹。
这是我所拥有的:
├── LICENSE.txt
├── MANIFEST.in
├── README.rst
├── setup.cfg
├── setup.py
└── zxcvbn_password
├── fields.py
├── __init__.py
├── static
│ └── zxcvbn_password
│ └── js
│ ├── password_strength.js
│ ├── zxcvbn-async.js
│ └── zxcvbn.js
├── validators.py
└── widgets.py
我要做的是:
python setup.py register -r pypi
python setup.py sdist upload -r pypi
正确创建了 tar 存档(它包含静态文件夹),当我从 PyPi 下载相同的存档时,它还包含静态文件夹。但是使用 pip 安装它只会在我的站点包中的zxcvbn_password 中为我提供以下信息:
└── zxcvbn_password
├── fields.py
├── __init__.py
├── validators.py
└── widgets.py
这就是我编写 setup.py 的方式:
from distutils.core import setup
setup(
name='django-zxcvbn-password',
packages=['zxcvbn_password'],
include_package_data=True,
url='https://github.com/Pawamoy/django-zxcvbn-password',
# and other data ...
)
还有我的 MANIFEST.in:
include LICENSE.txt
include README.rst
recursive-include zxcvbn_password/static *
我做错了吗?
为什么pip使用setup.py install时没有安装静态文件夹?
编辑
我添加了从 distutils 导入设置函数的 setup.py 行。
运行 python setup.py sdist upload -r pypitest:/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'include_package_data'
【问题讨论】:
-
不确定是什么原因造成的,但您是否尝试过在清单中“包含静态”。另请查看:packaging.python.org/en/latest/distributing.html
-
考虑自行回答您的问题,而不是将您的解决方案添加到问题中。在 SE 上,目标是提供一个比较全面的 QA 存档。如果您找到了问题的解决方案,自我回答是非常好的,并且值得鼓励,因为它可以帮助其他人找到您的问题的解决方案。
-
好的,我会的,谢谢你的解释:)
标签: python pip setuptools pypi