Я работаю над Mac OS X Yosemite версии 10.10.3.
Я установил python2.7 и pip, используя macport, как это сделано в http://johnlaudun.org/20150512-installing-and-setting-pip-with-macports/
Я могу успешно устанавливать пакеты и импортировать их в свою среду Python и сценарии Python. Однако никаких исполняемых файлов, связанных с пакетом, которые можно вызвать из командной строки в терминале, не обнаружено.
Кто-нибудь знает, что может быть не так? (Подробнее см. Ниже)
Например, при установке пакета под названием «rosdep», как указано в http://wiki.ros.org/jade/Installation/Source
Я могу запустить: sudo pip install -U rosdep
который устанавливается без ошибок и соответствующие файлы находятся в/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Однако, если я попытаюсь запустить:, sudo rosdep init
появится ошибка:"sudo: rosdep: command not found"
Это не ошибка конкретного пакета. Я получаю это для любого пакета, установленного с помощью pip на моем компьютере. Я даже пробовал добавить
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
к моему $PATH
. Но исполняемые файлы не находятся в командной строке, хотя пакеты отлично работают изнутри python.
Ответы:
проверьте свой $ PATH
tox
имеет режим командной строки:где это находится?
(редактировать: здесь
2.7
все не так важно, sub в любом3.x
и pip ведут себя примерно так же)и что в моем $ PATH?
Обратите внимание на /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin ? Это то, что позволяет найти мой установленный pip
Теперь, чтобы увидеть , где вещи из Python, попытайтесь делать это (заменитель
rosdep
дляtox
).который распечатывает:
Теперь перейдите в каталог прямо над
lib
вышеупомянутым. Вы видите каталог bin ? Вы видитеrosdep
в этой корзине? Если да, попробуйте добавить вbin
свой $ PATH.вывод:
источник
rosdep
, соответствует вашей проблеме. Я хочу сказать, что вам нужно найти, гдеrosdep
он установлен и как выглядит $ PATH.which
(если ее еще нет на вашем пути), вы также можете попробовать найти двоичный файл, используяmlocate
в Linux илиmdfind
MacOS.В macOS с установкой Python по умолчанию вам нужно добавить
/Users/<you>/Library/Python/2.7/bin/
в свой $ PATH.Добавьте это в свой .bash_profile:
Вот где pip устанавливает исполняемые файлы.
Совет: Для версии Python, отличной от используемой по умолчанию,
which python
необходимо найти местоположение вашей установки Python и заменить эту часть в указанном выше пути. (Спасибо за подсказку Sanket_Diwale)источник
which python3
конечном итоге привела меня (через ссылку) к/Library/Frameworks/Python.framework/Versions/3.6/bin/
.Если вы устанавливаете с помощью
--user
(напримерpip3.6 install --user tmuxp
), можно получить каталог установки пользователя для конкретной платформы из самого Python с помощьюsite
модуля . Например, в macOS:Добавив
/bin
это, мы теперь имеем путь, по которому будут установлены исполняемые файлы пакета. Мы можем динамически заполнять PATH в rc-файле вашей оболочки на основе вывода; Я использую bash, но если повезет, это переносимо:Я использую точные версии Python, чтобы уменьшить вероятность того, что исполняемые файлы просто «исчезнут», когда Python обновит младшую версию, например, с 3.5 до 3.6. Они исчезнут, потому что, как видно выше, путь установки пользователя может включать версию Python. Таким образом, если
python3
можно указать на 3,5 или 3,6,python3.6
всегда будет указывать на 3,6. Это необходимо учитывать при установке дополнительных пакетов, например, при использованииpip3.6
overpip3
.Если вы не против исчезновения пакетов, вы можете вместо этого использовать
python2
иpython3
:источник
Я знаю, что вопрос касается macOS, но вот решение для пользователей Linux, которые приходят сюда через Google.
У меня возникла проблема, описанная в этом вопросе, после установки pdfx пакета через pip.
Однако когда я его запустил, ничего ...
Все же:
Проблема в Linux заключается в том, что
pip install ...
скрипты сбрасываются,~/.local/bin
а этого нет в Debian / Ubuntu по умолчанию.$PATH
.Вот проблема с GitHub более подробно: https://github.com/pypa/pip/issues/3813
Чтобы исправить это, просто добавьте
~/.local/bin
в свой$PATH
, например, добавив в свой.bashrc
файл следующую строку :После этого перезапустите оболочку, и все должно работать, как ожидалось.
источник
source ~/.bashrc
перезагрузить.bashrc
конфигурациюРешение
Основываясь на других ответах, для
linux
иmac
вы можете запустить следующее:вместо того ,
python3
вы можете использовать любую другую ссылку на питон версию:python
,python2.7
,python3.6
,python3.9
и т.д.Объяснение
Чтобы узнать, где установлены пользовательские пакеты в текущей ОС (win, mac, linux), мы запускаем:
Мы знаем, что скрипты попадают в
bin/
папку, где установлены пакеты.Итак, мы объединяем пути:
Затем мы экспортируем это в переменную среды.
Наконец, чтобы избежать повторения команды экспорта, мы добавляем ее в наш
.bashrc
файл и запускаемsource
для выполнения новых изменений, что дает нам предлагаемое решение, упомянутое в начале.источник
В Windows вам нужно добавить путь
%USERPROFILE%\AppData\Roaming\Python\Scripts
к вашему пути.источник
Я наткнулся на этот вопрос, потому что создал, успешно собрал и опубликовал пакет PyPI, но не смог выполнить его после установки.
$PATH
Переменная была правильно установлена.В моем случае проблема заключалась в том, что я не установил
entry_point
вsetup.py
файле:источник
Помимо добавления
bin
каталога python в$PATH
переменную, мне также пришлось изменить владельца этого каталога, чтобы он работал. Понятия не имею, почему я уже не был владельцем.источник
Когда вы устанавливаете Python или Python3 с помощью установщика MacOS (загруженного с веб-сайта Python), он добавляет
export
эр в ваш~/.profile
скрипт. Все, что вам нужно сделать, это простоsource
это. Перезагрузка всех терминалов также должна помочь.ВНИМАНИЕ - я считаю, что лучше просто использовать pip3 с Python3 - для будущих преимуществ.
Если у вас уже установлен Python3, в macOS Mojave мне подойдут следующие шаги:
Сначала установите ansible, используя
sudo
-sudo -H pip3 install ansible
вы создаете символическую ссылку на
bin
путь Pythonsudo ln -s /Library/Frameworks/Python.framework/Versions/Current/bin /Library/Frameworks/Python.framework/current_python_bin
и прикрепить его к
.profile
export PATH=$PATH:/Library/Frameworks/Python.framework/current_python_bin
запустить
source ~/.profile
и перезапустить все терминальные оболочки.Тип
ansible --version
источник