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 $PATH
variable was correctly set.
In my case the problem was that I hadn't set the entry_point
in 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/
'development' 카테고리의 다른 글
구체적인 클래스에서 상속하는 좋은 예가 있습니까? (0) | 2020.10.27 |
---|---|
snprintf ()는 항상 null로 종료됩니까? (0) | 2020.10.27 |
파일 압축에 사용할 무료 라이브러리에 대한 권장 사항 (0) | 2020.10.27 |
Windows 양식 응용 프로그램에서 많은 컨트롤이있는 패널 컨트롤에 스크롤바를 추가하는 방법은 무엇입니까? (0) | 2020.10.27 |
왜 파이썬 모듈은 때때로 하위 모듈을 가져 오지 않습니까? (0) | 2020.10.27 |