python - setup.py sdist bdist_wheel

-1
Noname 2020-04-21 02:01.

Decidi criar um pequeno módulo chamado "NsmPY". Depois de terminar o código por trás do módulo (disponível no GitHub), comecei a trabalhar tentando fazer o upload desse novo módulo para o PyPi. No entanto, quando executei o comando necessário python3 setup.py sdist bdist_wheel, o programa cuspiu um erro:

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'

No entanto, em meu código não há absolutamente nenhuma menção ao arquivo ou diretório 'nsmpy' e, mesmo assim, o código, setup.py, setup.cfg e todos os outros arquivos de configuração estão todos armazenados na pasta 'nsmpy'.

Além disso, quando finalmente fiz o upload para minha conta no PyPi (eu executei python setup.py sdist), funcionou - até que realmente decidi instalar o módulo com pip install nsmpy, ele me deu os seguintes erros:

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.

E sim, estou usando os módulos e as versões mais recentes de tudo.

from setuptools import setup

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

1 answers

1
sinoroc 2020-04-21 02:52.

O scriptsparâmetro da setuptools.setupfunção deve ser uma lista de nomes de arquivos. Então, no seu caso, acredito que deveria ser:

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

Observe também que o scriptsparâmetro caiu um pouco em desuso. Hoje em dia, é recomendado usar console_scripts pontos de entrada , para os quais há documentação muito mais atualizada disponível.

Referências:

  • https://docs.python.org/3/distutils/apiref.html#distutils.core.setup
  • https://docs.python.org/3/distutils/setupscript.html#installing-scripts
  • https://packaging.python.org/guides/distributing-packages-using-setuptools/#scripts
  • https://setuptools.readthedocs.io/en/latest/setuptools.html#automatic-script-creation

MORE COOL STUFF

Jana Duggar: tudo o que ela disse sobre o amor e sua janela de 5 anos para encontrar o 'escolhido'

Jana Duggar: tudo o que ela disse sobre o amor e sua janela de 5 anos para encontrar o 'escolhido'

Jana Duggar foi aberta sobre sua busca pelo amor. Aqui está tudo o que ela disse sobre o assunto e sua janela de cinco anos para o casamento.

Sam Heughan sabe exatamente o que vai tirar do set de 'Outlander' - 'Eu me sinto como Jamie quando os coloco'

Sam Heughan sabe exatamente o que vai tirar do set de 'Outlander' - 'Eu me sinto como Jamie quando os coloco'

O astro de 'Outlander', Sam Heughan, revelou recentemente o que vai levar do set para relembrar Jamie Fraser, o papel que o tornou uma estrela.

A música dos primeiros Beatles que foi uma das 'apresentações mais emocionantes' da banda, de acordo com um Fab Four Insider

A música dos primeiros Beatles que foi uma das 'apresentações mais emocionantes' da banda, de acordo com um Fab Four Insider

'She Loves You' foi escrita em uma hora, gravada em um dia, e foi a música dos Beatles com uma de suas melhores apresentações de sua carreira.

Dolly Parton ajudou sua avó 'inválida' quando nenhum dos outros netos o faria - ela também pregaria uma peça nela

Dolly Parton ajudou sua avó 'inválida' quando nenhum dos outros netos o faria - ela também pregaria uma peça nela

Dolly Parton e sua avó Bessie tiveram um relacionamento especial. Vovó Parton estava muito doente, mas isso não impediu Dolly de pregar uma peça nela.

Qual é a madeira mais dura do mundo?

Qual é a madeira mais dura do mundo?

Você pode achar que o carvalho ou a nogueira são madeiras resistentes, mas quando se trata da madeira mais dura do mundo, elas nem chegam perto.

10 das criaturas marinhas mais assustadoras que espreitam nas profundezas do oceano

10 das criaturas marinhas mais assustadoras que espreitam nas profundezas do oceano

O oceano é repleto de beleza, mas também esconde algumas das criaturas marinhas mais assustadoras do planeta. Muitos desses animais espreitam nas profundezas do oceano, no mundo escuro e de alta pressão do fundo do mar.

10 Melhores Encantamentos de Espada no Minecraft

10 Melhores Encantamentos de Espada no Minecraft

Se você está enfrentando criaturas hostis ou se preparando para cenários PvP, conhecer os melhores encantamentos de espada no Minecraft pode te dar uma grande vantagem. Encantar espadas permite causar mais dano, aumentar a quantidade de itens obtidos de criaturas e prolongar a durabilidade da sua espada.

13 países socialistas muito diferentes entre si

13 países socialistas muito diferentes entre si

Quando as pessoas falam sobre países socialistas, geralmente imaginam o controle total do governo e a ausência de propriedade privada. Mas, na prática, as economias socialistas variam muito.

Recapitulação do Urso: Marcus é o homem mais gentil, gentil e sincero de Chicago?

Recapitulação do Urso: Marcus é o homem mais gentil, gentil e sincero de Chicago?

“Children” traz uma participação especial de grande nome e algumas notícias devastadoras

Por US $ 9.800, você os colocaria neste Toyota RAV4 2008 de sete lugares?

Por US $ 9.800, você os colocaria neste Toyota RAV4 2008 de sete lugares?

Este RAV4 está em excelentes condições e está preparado para um jogo de cadeiras musicais.

Van de entrega da Amazon pega fogo em explosão de fogo durante o calor do verão em Houston

Van de entrega da Amazon pega fogo em explosão de fogo durante o calor do verão em Houston

Imagens de drone capturaram bombeiros parecendo lutar para apagar o incêndio.

O programa dos Panteras Negras da Marvel será o programa de animação mais importante até agora

O programa dos Panteras Negras da Marvel será o programa de animação mais importante até agora

Eyes of Wakanda está diretamente relacionado ao MCU, além de atualizações sobre X-Men '97, What If..., Demolidor e muito mais.

Tudo sobre o deslumbrante anel de noivado de safira de Kate Middleton (e a herança real que o inspirou!)

Tudo sobre o deslumbrante anel de noivado de safira de Kate Middleton (e a herança real que o inspirou!)

O anel de noivado de Kate Middleton pertenceu à Princesa Diana antes do Príncipe William pedi-la em casamento. Descubra tudo o que há para saber sobre a peça histórica aqui.

Quem é a esposa de John Cleese? Tudo sobre Jennifer Wade

Quem é a esposa de John Cleese? Tudo sobre Jennifer Wade

John Cleese se casou com sua esposa, Jennifer Wade, em 2012. Aqui está tudo o que você precisa saber sobre a esposa de John Cleese, Jennifer Wade.

Quem é a esposa de Patton Oswalt? Tudo sobre Meredith Salenger

Quem é a esposa de Patton Oswalt? Tudo sobre Meredith Salenger

Patton Oswalt se casou com sua esposa, a também atriz Meredith Salenger, em 2017. Aqui está tudo o que você precisa saber sobre a esposa de Patton Oswalt, Meredith Salenger.

Quem é o marido de Mena Suvari? Tudo sobre Michael Hope

Quem é o marido de Mena Suvari? Tudo sobre Michael Hope

Mena Suvari é casada com o marido Michael Hope desde 2018. Aqui está tudo o que você precisa saber sobre o marido de Mena Suvari.

pronomes são super assustadores

Isso me atinge De repente, como tantas vezes acontece É o meio do caminho tudo de novo <Não, não aquele no Pacífico, seu marrom, aquele no carnaval> Todas as manchetes em voz alta…..

3 maneiras comprovadas de melhorar sua habilidade de escrita

Os benefícios de escrever e estratégias para ajudá-lo a fazê-lo

3 maneiras comprovadas de melhorar sua habilidade de escrita

Em 2022, com o lançamento do GPT-3, a habilidade de escrita parece se tornar menos importante. Com a IA, pessoas com redação ruim também podem gerar funcionários de qualidade.

A lenta erosão: revelando como as pessoas desperdiçam em suas carreiras

A lenta erosão: revelando como as pessoas desperdiçam em suas carreiras

No mundo acelerado e competitivo de hoje, a carreira desempenha um papel significativo no crescimento pessoal, na estabilidade financeira e na satisfação geral com a vida. No entanto, muitos indivíduos encontram-se presos em um ciclo implacável de estagnação e insatisfação, definhando gradualmente em suas vidas profissionais.

O que torna um podcast influente?

O que torna um podcast influente?

Na semana passada, notei um comunicado de imprensa, enviado via PressGazette (um site de notícias da mídia britânica). O artigo anunciava que a Acast, a empresa de publicidade e hospedagem de podcast Scandi, lideraria um consórcio de "provavelmente os editores mais influentes" em podcasting.

Language