python - setup.py sdist bdist_wheel - PullRequest
       87

python - setup.py sdist bdist_wheel

0 голосов
/ 20 апреля 2020

Я решил создать небольшой маленький модуль с именем "NsmPY". Закончив код модуля (доступен на GitHub), я начал загружать этот новый модуль в PyPi. Однако, когда я выполнил необходимую команду python3 setup.py sdist bdist_wheel, программа выдала ошибку:

running sdist
running egg_info
writing nsmpy.egg-info\PKG-INFO
writing dependency_links to nsmpy.egg-info\dependency_links.txt
writing top-level names to nsmpy.egg-info\top_level.txt
reading manifest file 'nsmpy.egg-info\SOURCES.txt'
writing manifest file 'nsmpy.egg-info\SOURCES.txt'
warning: sdist: standard file not found: should have one of README, README.rst, README.txt, README.md

running check
creating nsmpy-1.0
creating nsmpy-1.0\nsmpy.egg-info
copying files to nsmpy-1.0...
copying setup.cfg -> nsmpy-1.0
copying setup.py -> nsmpy-1.0
copying nsmpy.egg-info\PKG-INFO -> nsmpy-1.0\nsmpy.egg-info
copying nsmpy.egg-info\SOURCES.txt -> nsmpy-1.0\nsmpy.egg-info
copying nsmpy.egg-info\dependency_links.txt -> nsmpy-1.0\nsmpy.egg-info
copying nsmpy.egg-info\top_level.txt -> nsmpy-1.0\nsmpy.egg-info
Writing nsmpy-1.0\setup.cfg
Creating tar archive
removing 'nsmpy-1.0' (and everything under it)
running bdist_wheel
running build
running build_scripts
creating build
creating build\scripts-3.7
error: [Errno 2] No such file or directory: 'nsmpy'

Однако в моем коде нет абсолютно никакого упоминания о файле или каталоге 'nsmpy', и даже так код, setup.py, setup.cfg и все другие установочные файлы хранятся в папке 'nsmpy'.

Более того, когда я наконец загрузил это в свою учетную запись на PyPi (я запустил python setup.py sdist) это работало - пока я фактически не решил установить модуль с pip install nsmpy, он выдал мне следующие ошибки:

Collecting nsmpy==1.0.0
  Using cached nsmpy-1.0.tar.gz (628 bytes)
Building wheels for collected packages: nsmpy
  Building wheel for nsmpy (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: 'c:\users\sciencepi\anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\SCIENC~1\\AppData\\Local\\Temp\\pip-install-98ihityv\\nsmpy\\setup.py'"'"'; __file__='"'"'C:\\Users\\SCIENC~1\\AppData\\Local\\Temp\\pip-install-98ihityv\\nsmpy\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\SCIENC~1\AppData\Local\Temp\pip-wheel-mm6p5lwl'
       cwd: C:\Users\SCIENC~1\AppData\Local\Temp\pip-install-98ihityv\nsmpy\
  Complete output (6 lines):
  running bdist_wheel
  running build
  running build_scripts
  creating build
  creating build\scripts-3.7
  error: [Errno 2] No such file or directory: 'nsmpy'
  ----------------------------------------
  ERROR: Failed building wheel for nsmpy
  Running setup.py clean for nsmpy
Failed to build nsmpy
ERROR: Error checking for conflicts.
Traceback (most recent call last):
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 3021, in _dep_map
    return self.__dep_map
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2815, in __getattr__
    raise AttributeError(attr)
AttributeError: _DistInfoDistribution__dep_map

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 3012, in _parsed_pkg_info
    return self._pkg_info
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2815, in __getattr__
    raise AttributeError(attr)
AttributeError: _pkg_info

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_internal\commands\install.py", line 517, in _warn_about_conflicts
    package_set, _dep_info = check_install_conflicts(to_install)
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_internal\operations\check.py", line 114, in check_install_conflicts
    package_set, _ = create_package_set_from_installed()
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_internal\operations\check.py", line 53, in create_package_set_from_installed
    package_set[name] = PackageDetails(dist.version, dist.requires())
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2736, in requires
    dm = self._dep_map
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 3023, in _dep_map
    self.__dep_map = self._compute_dependencies()
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 3032, in _compute_dependencies
    for req in self._parsed_pkg_info.get_all('Requires-Dist') or []:
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 3014, in _parsed_pkg_info
    metadata = self.get_metadata(self.PKG_INFO)
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1420, in get_metadata
    value = self._get(path)
  File "c:\users\sciencepi\anaconda3\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1616, in _get
    with open(path, 'rb') as stream:
PermissionError: [Errno 13] Permission denied: 'c:\\users\\sciencepi\\anaconda3\\lib\\site-packages\\tensorflow-2.1.0.dist-info\\METADATA'
Installing collected packages: nsmpy
    Running setup.py install for nsmpy ... error
    ERROR: Command errored out with exit status 1:
     command: 'c:\users\sciencepi\anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\SCIENC~1\\AppData\\Local\\Temp\\pip-install-98ihityv\\nsmpy\\setup.py'"'"'; __file__='"'"'C:\\Users\\SCIENC~1\\AppData\\Local\\Temp\\pip-install-98ihityv\\nsmpy\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\SCIENC~1\AppData\Local\Temp\pip-record-9ap1k2wf\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\sciencepi\anaconda3\Include\nsmpy'
         cwd: C:\Users\SCIENC~1\AppData\Local\Temp\pip-install-98ihityv\nsmpy\
    Complete output (6 lines):
    running install
    running build
    running build_scripts
    creating build
    creating build\scripts-3.7
    error: file 'C:\Users\SCIENC~1\AppData\Local\Temp\pip-install-98ihityv\nsmpy\nsmpy' does not exist
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\sciencepi\anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\SCIENC~1\\AppData\\Local\\Temp\\pip-install-98ihityv\\nsmpy\\setup.py'"'"'; __file__='"'"'C:\\Users\\SCIENC~1\\AppData\\Local\\Temp\\pip-install-98ihityv\\nsmpy\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\SCIENC~1\AppData\Local\Temp\pip-record-9ap1k2wf\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\sciencepi\anaconda3\Include\nsmpy' Check the logs for full command output.

И да, я использую последние модули и последние версии всего.

from setuptools import setup

setup(
    name="nsmpy",
    version="1.0.0",
    scripts=['nsmpy'])

1 Ответ

2 голосов
/ 20 апреля 2020

Параметр scripts функции setuptools.setup должен представлять собой список имен файлов. Так что в вашем случае я считаю, что это должно выглядеть следующим образом:

setuptools.setup(
    # ...
    scripts=['nsmpy.py'],
    # ...
)

Также обратите внимание, что параметр scripts несколько упал в пользу. В настоящее время рекомендуется использовать console_scripts точек входа , для которых доступно гораздо больше актуальной документации.

Ссылки:

...