development

pip는 패키지를 성공적으로 설치하지만 명령 줄에서 찾을 수없는 실행 파일

big-blog 2020. 10. 27. 22:45
반응형

pip는 패키지를 성공적으로 설치하지만 명령 줄에서 찾을 수없는 실행 파일


Mac OS X Yosemite, 버전 10.10.3에서 작업하고 있습니다.

http://johnlaudun.org/20150512-installing-and-setting-pip-with-macports/ 에서 수행 한대로 macport를 사용하여 python2.7 및 pip를 설치했습니다.

패키지를 성공적으로 설치하고 Python 환경 및 Python 스크립트 내에서 가져올 수 있습니다. 그러나 터미널의 명령 줄에서 호출 할 수있는 패키지와 관련된 실행 파일을 찾을 수 없습니다.

누구든지 무엇이 잘못되었는지 알고 있습니까? (자세한 내용은 아래 참조)

예를 들어 http://wiki.ros.org/jade/Installation/Source의 지시에 따라 "rosdep"라는 패키지를 설치하는 동안

실행할 수 있습니다 : 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. 그러나 패키지가 파이썬 내에서 완벽하게 작동하더라도 실행 파일은 명령 줄에서 찾을 수 없습니다.


$ PATH 확인

tox 명령 줄 모드가 있습니다.

audrey:tests jluc$ pip list | grep tox
tox (2.3.1)

어딨어?

audrey:tests jluc$ which tox
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/tox

내 $ PATH에 무엇이 있습니까?

audrey:tests jluc$ echo $PATH
/opt/chefdk/bin:/opt/chefdk/embedded/bin:/opt/local/bin:..../opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin...

통지 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin를 ? 그것이 내 pip 설치 항목을 찾을 수있게 해주는 것입니다

지금은 상황이 파이썬 어디에서,이 (대체 일을하려고 볼 수 있습니다 rosdep를 들어 tox).

$python
>>> import tox
>>> tox.__file__

출력 :

'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tox/__init__.pyc'

이제 CD 위의 디렉토리 오른쪽 lib위이다. bin 디렉토리 보이 십니까? rosdep그 상자에 보이니 ? 그렇다면 bin$ PATH에 추가해보십시오 .

audrey:2.7 jluc$ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.7
audrey:2.7 jluc$ ls -1

산출:

Headers
Python
Resources
bin
include
lib
man
share

기본 Python 설치를 사용하는 macOS에서는 /Users/<you>/Library/Python/2.7/bin/$ PATH 에 추가 해야합니다.

.bash_profile에 다음을 추가하십시오.

export PATH="/Users/<you>/Library/Python/2.7/bin:$PATH"

pip가 실행 파일을 설치하는 곳입니다.

팁 : 기본이 아닌 Python 버전 which python의 경우 Python 설치 위치를 찾고 위의 경로에서 해당 부분을 바꿉니다. (힌트 Sanket_Diwale에 감사드립니다)


--user(예 pip3.6 install --user tmuxp) 를 사용하여 설치하는 경우 site모듈을 사용하여 Python 자체에서 플랫폼 별 사용자 설치 디렉토리를 가져올 수 있습니다. 예를 들어 macOS의 경우 :

$ python2.7 -m site --user-base
/Users/alexp/Library/Python/2.7

By appending /bin to this, we now have the path where package executables will be installed. We can dynamically populate the PATH in your shell's rc file based on the output; I'm using bash, but with any luck this is portable:

# Add Python bin directories to path
python3.6 -m site &> /dev/null && PATH="$PATH:`python3.6 -m site --user-base`/bin"
python2.7 -m site &> /dev/null && PATH="$PATH:`python2.7 -m site --user-base`/bin"

I use the precise Python versions to reduce the chance of the executables just "disappearing" when Python upgrades a minor version, e.g. from 3.5 to 3.6. They'll disappear because, as can be seen above, the user installation path may include the Python version. So while python3 could point to 3.5 or 3.6, python3.6 will always point to 3.6. This needs to be kept in mind when installing further packages, e.g. use pip3.6 over pip3.

If you don't mind the idea of packages disappearing, you can use python2 and python3 instead:

# Add Python bin directories to path
# Note: When Python is upgraded, packages may need to be re-installed
#       or Python versions managed.
python3 -m site &> /dev/null && PATH="$PATH:`python3 -m site --user-base`/bin"
python2 -m site &> /dev/null && PATH="$PATH:`python2 -m site --user-base`/bin"

I stumbled upon this question because I created, successfully built and published a PyPI Package, but couldn't execute it after installation. The $PATHvariable was correctly set.

In my case the problem was that I hadn't set the entry_pointin the setup.py file:

entry_points = {'console_scripts':

['YOUR_CONSOLE_COMMAND=MODULE_NAME.FILE_NAME:FUNCTION_NAME'],},

On Windows, you need to add the path %USERPROFILE%\AppData\Roaming\Python\Scripts to your path.


In addition to adding python's bin directory to $PATH variable, I also had to change the owner of that directory, to make it work. No idea why I wasn't the owner already.

chown -R ~/Library/Python/

참고URL : https://stackoverflow.com/questions/35898734/pip-installs-packages-successfully-but-executables-not-found-from-command-line

반응형