简体   繁体   中英

Personal PyPI Package Install Errors Out

I have successfully uploaded my project to PyPI, and I wanted to install it myself to see if it works. However, anytime I try to download it, it errors out with this error, I desperately require assistance, thanks!

    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('"'"'\r\n'"'"', '"'"'\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. Put __init__.py into all directories that don't have it.

This is the way Python knows it is an importable module. Without these files, influence wasn't recognized as a package and was omitted. Note that it is not just the influence directory but also many other lower-level ones.

  1. Build wheel package instead of sources: python3 setup.py bdist

sdist is a legacy package format, literally just a tarball of sources. If you absolutely have to build sdist, write a proper MANIFEST.in , listing files to include. However, it is really preferred to build wheel packages instead these days.

UPD:

  • The first suggestion is only critical for older versions of Python. Apparently it is not a strict requirement anymore, at least as of Python 3.8
  • packages argument in setup.py will not include underlying directories recursively. So, in this case, you need to update this to look like:
setup(
    ...,
    packages = [
        'influence.upgrader.array',
        'influence.extender.cout',
        'influence.extender.list',
        'influence.extender.math',
        'influence.extender.string',
    ],
    ...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM