Мне было интересно, как выше «yum install package» & «python setup.py install» используются по-разному в CentOS? Я использовал yum install ... все время. Однако, когда я пытаюсь выполнить установку python setup.py, я всегда получаю: этот файл setup.py не может быть найден, даже если его путь отображается под echo $ PATH, если я не пытаюсь использовать его в его текущем каталоге или использовать абсолютный путь."yum install package" или "python setup.py install" в CentOS?
ответ
Когда вы наберете python setup.py install
, ваша оболочка проверит вашу $ PATH для команды python
и запустит ее. Затем python будет рассматривать свои аргументы, которые являются setup.py install
. Он знает, что ему может быть присвоено имя скрипта, поэтому он ищет файл с именем setup.py
, поэтому его можно запустить. Python не использует ваш PATH для поиска скриптов, поэтому он должен быть реальным путем к файлу. Если вы просто дадите ему имя setup.py
, оно будет выглядеть только в вашем текущем каталоге.
Исходный каталог для модуля python не должен, в идеале, находиться в вашем $ PATH.
yum install
- это команда, которая отправляется в репозиторий пакетов, загружает все файлы, необходимые для установки, а затем помещает их в нужное место. yum
(и эквиваленты в других дистрибутивах, например apt
для систем Debian) также будут извлекать и устанавливать любые другие необходимые вам пакеты, в том числе любые, которые не являются модулями python.
У Python есть менеджер пакетов. Вы также можете найти с помощью pip install modulename
или pip install --user modulename
(если у вас нет прав администратора) проще, чем загрузить и установить модуль вручную. Вы можете часто получать более свежие версии модулей таким образом, поскольку те, которые предоставляются операционной системой (через yum
), как правило, являются более старыми и более стабильными версиями. Иногда модуль недоступен через yum
. pip
не может устанавливать дополнительные пакеты, которые не являются модулями python.
Если вы не пип уже (речь идет с Python3, но, возможно, потребуется установка отдельно для python2, в зависимости от того, как она была создана), то вы можете установить его, следуя инструкциям здесь: https://pip.pypa.io/en/stable/installing/
- 1. yum install error Centos 5
- 2. pip install package call setup.py install вместо setup.py bdist_wheel
- 3. yum install specific version of python package
- 4. python install snack package
- 5. Yum install Hadoop не найден error CENTOS
- 6. cpan versus yum install perl-package-name
- 7. Puppet Nginx Install CentOs
- 8. yum install php-pear * on centos
- 9. yum install apt error
- 10. python setup.py install outside virtualenv
- 11. pip install private package
- 12. Python setup.py install throwing zipimport.ZipImportError
- 13. python install package from python
- 14. CentOS install mod_dav_svn
- 15. Python setup.py develop vs install
- 16. xz compression install on centos
- 17. yum install mongodb 3.2 сбой
- 18. python setup.py install, из памяти в virtualenv
- 19. CentOS yum install gcc error: glibc-common конфликты с glibc
- 20. pinton auto install package
- 21. yum install subversion1.4.3
- 22. Разница между setup.py install и setup.py develop
- 23. Python 3: setup.py: pip install, который делает все (build_ext + install)
- 24. Разница между 'python setup.py install' и 'pip install'
- 25. Как запустить 'python setup.py install' из Python?
- 26. setup.py install показать только папки
- 27. virtualenv versus setup.py install --user
- 28. yum install openssl-devel error
- 29. Offline centos install psutil
- 30. pip install from specific setup.py
Одна деталь, которую я хотел бы добавить в этот ответ, - это разработка различия между менеджером пакетов дистрибутива и Python. Вкратце, если у вас есть другие пакеты RPM (или '.deb' или что-то еще), которые зависят от конкретного дистрибутива, вы, вероятно, должны установить это, предпочитая модуль' pip'. (Я уверен, что на это был дан ответ много раз.) – tripleee
Я думаю, что есть аргументы в обоих направлениях. Диспетчер системных пакетов, безусловно, проще, и возможность установки зависимостей, отличных от python, делает его привлекательным по эксплуатационным причинам. Использование pip & virtualenv при распространении программного обеспечения дает вам больше контроля над версиями и более переносимо. Соединение между этими двумя маршрутами должно использовать что-то вроде [fpm] (https://github.com/jordansissel/fpm/wiki), чтобы сделать .deb/.rpm из модулей pip и вашего собственного дерева каталогов. –
Я добавил больше объяснений, следуя вашему предложению. –