个人PyPI软件包安装错误



我已经成功地将我的项目上传到PyPI,我想自己安装它,看看它是否有效。然而,每当我尝试下载它时,它都会出现这个错误!我急需帮助,谢谢!

ERROR: Command errored out with exit status 1:
command: /Library/Frameworks/Python.framework/Versions/3.8/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/n4/r_gyzzn158x562qr7zyb9sxh0000gp/T/pip-install-bp0xti0o/influence/setup.py'"'"'; __file__='"'"'/private/var/folders/n4/r_gyzzn158x562qr7zyb9sxh0000gp/T/pip-install-bp0xti0o/influence/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/n4/r_gyzzn158x562qr7zyb9sxh0000gp/T/pip-pip-egg-info-dpyhhxvj
cwd: /private/var/folders/n4/r_gyzzn158x562qr7zyb9sxh0000gp/T/pip-install-bp0xti0o/influence/
Complete output (8 lines):
running egg_info
creating /private/var/folders/n4/r_gyzzn158x562qr7zyb9sxh0000gp/T/pip-pip-egg-info-dpyhhxvj/influence.egg-info
writing /private/var/folders/n4/r_gyzzn158x562qr7zyb9sxh0000gp/T/pip-pip-egg-info-dpyhhxvj/influence.egg-info/PKG-INFO
writing dependency_links to /private/var/folders/n4/r_gyzzn158x562qr7zyb9sxh0000gp/T/pip-pip-egg-info-dpyhhxvj/influence.egg-info/dependency_links.txt
writing requirements to /private/var/folders/n4/r_gyzzn158x562qr7zyb9sxh0000gp/T/pip-pip-egg-info-dpyhhxvj/influence.egg-info/requires.txt
writing top-level names to /private/var/folders/n4/r_gyzzn158x562qr7zyb9sxh0000gp/T/pip-pip-egg-info-dpyhhxvj/influence.egg-info/top_level.txt
writing manifest file '/private/var/folders/n4/r_gyzzn158x562qr7zyb9sxh0000gp/T/pip-pip-egg-info-dpyhhxvj/influence.egg-info/SOURCES.txt'
error: package directory 'influence' does not exist
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  1. __init__.py放入所有没有它的目录中

Python就是这样知道它是一个可导入的模块的。如果没有这些文件,influence就不能被识别为一个包,因此被省略了。注意,它不仅仅是influence目录,还有许多其他较低级别的目录。

  1. 构建轮子包而不是源:python3 setup.py bdist

sdist是一种遗留的包格式,实际上只是源代码的tarball。如果您必须构建sdist,请编写一个适当的MANIFEST.in,列出要包含的文件。然而,现在确实更倾向于构建车轮包。

UPD:

  • 第一个建议仅对旧版本的Python至关重要。显然,它不再是一个严格的要求,至少在Python 3.8中是这样
  • setup.py中的packages参数将不会递归地包含底层目录。因此,在这种情况下,您需要将其更新为:
setup(
...,
packages = [
'influence.upgrader.array',
'influence.extender.cout',
'influence.extender.list',
'influence.extender.math',
'influence.extender.string',
],
...

相关内容

最新更新