шпагат не найден (-bash: шпагат: команда не найдена)

Я пытаюсь использовать шпагат для публикации моего первого пакета Python на pypi (конечно, сначала я добавлю test-pypi).

Я следовал официальному руководству на https://packaging.python.org/tutorials/packaging-projects/ .

Но шпагат почему-то не найден или неправильно установлен.

Я установил шпагат, используя:

pip install twine

«список пипсов» говорит, что шпагат установлен на пипе.

После того, как я обновил шпагат и все такое, когда я попытался запустить:

twine upload --repository-url https://test.pypi.org/legacy/ dist/*

потом пишет, что шпагат вообще не найден:

-bash: twine: command not found . 

Моя система — Mac (высокая сьерра), и я использую python2.7 от conda. Pip также настроен на conda python:

>>pip -V 
>>pip 10.0.1 from /anaconda2/lib/python2.7/site-packages/pip (python 2.7)

Я был бы признателен за вашу помощь.


person peterpark828    schedule 21.07.2018    source источник
comment
Работает ли python -m twine вместо twine? (Это не полный ответ, это вопрос для отладочной информации, но если он работает, это также обходной путь, который вы можете использовать, пока не исправите ситуацию.)   -  person abarnert    schedule 21.07.2018
comment
Поскольку pip установил его, это не означает, что он существует в PATH   -  person OneCricketeer    schedule 21.07.2018
comment
Используйте pip show -f twine для вывода списка всех файлов, принадлежащих пакету. Это покажет вам относительный путь к исполняемому файлу (что-то вроде ../../bin/twine). Объедините его с путем, напечатанным в строке Location:, чтобы получить полный путь к каталогу bin. Затем добавьте каталог в PATH: PATH=$PATH:/path/to/bin twine -V должно работать нормально. После этого сохраните PATH изменения в .bash_profile, добавив строки PATH=$PATH:/path/to/bin и export PATH. Перезапустите терминал, и все готово.   -  person hoefling    schedule 21.07.2018
comment
@abarnert, твой обходной путь теперь работает для меня. Благодарю вас!   -  person peterpark828    schedule 21.07.2018
comment
@hoefling Я добавил путь, как вы предложили, и подтвердил, что путь добавлен в это место, поскольку я только что проверил «эхо $ PATH». Тем не менее шпагат дает мне команду не найдено... :(   -  person peterpark828    schedule 21.07.2018
comment
Можете ли вы вставить вывод echo $PATH?   -  person hoefling    schedule 21.07.2018
comment
/anaconda2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/peterpark/.local/lib/python2.7/site-packages. Место было /Users/peterpark/.local/lib/python2.7/site-packages   -  person peterpark828    schedule 21.07.2018
comment
@hoefling Когда я добавил путь, я сделал PATH=$PATH:/path/to/bin вместо PATH=$PATH:/path/to/bin twine -V, потому что это также дало мне -bash: twine: command not found   -  person peterpark828    schedule 21.07.2018
comment
Вы не сделали то, что я предложил, поэтому это не сработало. Возьмите каталог site-packages и относительный путь к исполняемому файлу и сопоставьте его с каталогом местоположения. Пример: местоположение /foo/bar/site-packages, исполняемый файл ../../bin/twine. В PATH нужно добавить директорию /foo/bin (на два уровня вверх от site-packages, затем спуститься в bin). Удалите директорию site-packages из PATH, добавьте нужную директорию и все заработает.   -  person hoefling    schedule 21.07.2018
comment
В зависимости от пути расположения правильный каталог должен быть /Users/peterpark/.local/bin.   -  person hoefling    schedule 21.07.2018


Ответы (2)


Используйте 1_

person Iman    schedule 26.12.2018

На основе комментариев @hoefling

pip show twine

В нем будут перечислены все файлы, принадлежащие пакету twine. Он выведет что-то вроде этого:

Name: twine
Version: 1.12.1
Summary: Collection of utilities for publishing packages on PyPI
Home-page: https://twine.readthedocs.io/
Author: Donald Stufft and individual contributors
Author-email: [email protected]
License: Apache License, Version 2.0
Location: /Users/hakuna.matata/.local/lib/python3.6/site-packages
Requires: pkginfo, readme-renderer, tqdm, requests, requests-toolbelt, setuptools
Required-by: 

Обратите внимание на первый файл под Files, это ../../../bin/twine и Location: /Users/hakuna.matata/.local/lib/python3.6/site-packages. Конечно, ваше имя пользователя заменит «hakuna.matata».

Это приведет к пути к исполняемому файлу пакета в /Users/hakuna.matata/.local/bin, который вы можете добавить в свой .bash_profile как export PATH="/Users/hakuna.matata/.local/bin:$PATH".

Затем либо перезапустите терминал, либо

source ~/.bash_profile
person salhin    schedule 04.01.2019