virtualenv 대신 글로벌 사이트 패키지에 pip 설치


98

사용 pip3A가에 패키지를 설치하는 virtualenv글로벌 사이트 패키지로 설치 될 패키지를 일으키는 대신 VIRTUALENV 폴더에있는 하나의 폴더. OS X Mavericks (10.9.1)에서 Python3 및 virtualenv를 설정하는 방법은 다음과 같습니다.

Homebrew를 사용하여 Python3을 설치했습니다.

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew install python3 --with-brewed-openssl

에서 $PATH변수를 변경 했습니다 .bash_profile. 다음 줄을 추가했습니다.

export PATH=/usr/local/bin:$PATH

which python3리턴 실행 /usr/local/bin/python3(셸을 다시 시작한 후)

참고 : which python3여전히 반환 usr/bin/python됩니다.

다음을 virtualenv사용하여 설치 pip3:

pip3 install virtualenv

다음으로 새로 virtualenv만들고 활성화합니다.

virtualenv testpy3 -p python3
cd testpy3
source bin/activate

참고 : -p python3을 지정하지 않으면 virtualenv의 bin 폴더에서 pip가 누락됩니다.

실행 which pipwhich pip3VIRTUALENV 폴더를 모두 반환 :

/Users/kristof/VirtualEnvs/testpy3/bin/pip3

이제 활성화 된 virtualenv에서 pip를 사용하여 Markdown을 설치하려고하면 pip가 virtualenv의 site-packages 폴더 대신 global site-packages 폴더에 설치됩니다.

pip install markdown

러닝 pip list리턴 :

Markdown (2.3.1)
pip (1.4.1)
setuptools (2.0.1)
virtualenv (1.11)

내용 /Users/kristof/VirtualEnvs/testpy3/lib/python3.3/site-packages:

__pycache__/
_markerlib/
easy_install.py
pip/
pip-1.5.dist-info/
pkg_resources.py
setuptools/
setuptools-2.0.2.dist-info/

내용 /usr/local/lib/python3.3/site-packages:

Markdown-2.3.1-py3.3.egg-info/
__pycache__/
easy-install.pth
markdown/
pip-1.4.1-py3.3.egg/
setuptools-2.0.1-py3.3.egg
setuptools.pth
virtualenv-1.11-py3.3.egg-info/
virtualenv.py
virtualenv_support/

보시다시피 global site-packages 폴더에는 Markdown이 포함되어 있지만 virtualenv 폴더에는 포함되어 있지 않습니다.

참고 : 이전에 다른 VM에 Python2 및 Python3을 설치했으며 ( 지침에 따름) Python3에서 동일한 문제가 발생했습니다. Python2 기반 virtualenv에 패키지를 설치하면 완벽하게 작동했습니다.

모든 팁, 힌트,… 대단히 감사하겠습니다.


pip는 이미 사용 가능한 패키지를 설치하지 않습니다. 출력에 "요구 사항이 이미 충족 됨"이 표시되어야합니다. 아직없는 패키지를 설치해보십시오. btw, pip3은 non-brew python3을 사용할 수 있습니다 (어떻게 설치 pip3합니까?). 그 자체로는 나쁘지 않을 수 있지만 그것이 있는지 알고 있어야합니다.
jfs 2014 년

1
전에 Markdown을 설치하지 않았습니다. 글로벌 패키지 목록이 비어 있습니다. 어떤 패키지를 사용하든 상관 없습니다. 매번이 동작을 재현 할 수 있습니다.
ƘɌỈSƬƠƑ

pip3와 관련하여 : 이것은 Python3과 함께 homebrew에 의해 설치되었습니다.
ƘɌỈSƬƠƑ

저에게도 도움이되었습니다 : stackoverflow.com/questions/14695278/… 다른 사람에게 FYI를 위해
Nagaraj Tantri 2015 년

답변:


90

재밌게 당신이 이것을 제기했는데, 나는 똑같은 문제가있었습니다. 결국 해결했지만 원인이 무엇인지는 확실하지 않습니다.

bin/pipbin/activate스크립트를 확인하십시오 . 에서 bin/pip의 오두막에서보기. 맞습니까? 그렇지 않은 경우 수정하십시오. 그런 다음 ~ 라인 42에서에서 bin/activatevirtualenv 경로가 올바른지 확인하십시오. 다음과 같이 보일 것입니다.

VIRTUAL_ENV="/Users/me/path/to/virtual/environment"

잘못의 경우를 해결 deactivate하고 . bin/activate우리의 상호 문제 같은 원인이 있고, 경우에, 그것을 작동합니다. 그래도 그렇지 않다면 어쨌든 올바른 길을 가고있는 것입니다. 나는 당신이했던 것과 같은 문제 해결 루틴을 which pip반복하고 스택 추적을 따르는 등의 과정을 거쳤다 .

절대적으로

/Users/kristof/VirtualEnvs/testpy3/bin/pip3

비슷한 이름의 다른 테스트 프로젝트를 언급하지 않고 원하는 것입니다 (그 문제가 있었는데 어떻게 시작했는지 모르겠습니다. 내 의심은 동시에 여러 가상 환경을 실행하고 있습니다).

이 중 어느 것도 작동하지 않으면 Joe Holloway가 말했듯이 일시적인 해결책이 될 수 있습니다.

전체 경로로 virtualenv의 pip를 실행하기 만하면 (즉, 실행 경로 검색에 의존하지 않음) 환경을 활성화 할 필요도 없습니다. 그것은 옳은 일을 할 것입니다.

아마도 이상적이지는 않겠지 만, 약간 씩 작동해야합니다.

내 원래 질문에 대한 링크 :

VirtualEnv / Pip이 전역 적으로 패키지를 설치하려고합니다.


1
감사합니다 체이스. 내 질문을 게시하기 전에 귀하의 질문에 왔지만 shebang을 언급 한 맨 마지막 줄을 건너 뛴 것 같습니다. 그리고 실제로, 그것은로 설정 #!/usr/local/bin/python3.3대신 #!/Users/kristof/VirtualEnvs/testpy3/bin/python3.3. 나는 그것을 변경하고 virtualenv를 활성화하고 Markdown 패키지를 설치했습니다. Pip은 이제 전역 폴더 대신 virtualenv 사이트 패키지 폴더에 설치됩니다.
ƘɌỈSƬƠƑ

나는 이것도 만났다. 대답을 주셔서 감사합니다. 나는 shebangs를 발견하고 즉시이 질문을 발견하여 의심을 확인했습니다. Shebang이 왜 잘못되었는지 아는 사람이 있습니까? 새로운 가상 환경을 만들 때마다 확인할 필요가 없도록 영구적 인 수정을 찾는 것이 좋을 것입니다.
Will

2
나는 같은 문제가 있었다. 내 activate스크립트는 괜찮다고하지만 조심 , 모든pip* 스크립트와 easy_install*스크립트가 잘못된 오두막이있다. 모두 수동으로 수정해야합니다. pip 또는 그와 비슷한 것을 다시 설치하여 수정할 수 없었습니다. 또한 Joe Holloway의 해결 방법에 대한 설명 : 문제는 pip를 검색하는 셸이 아니라 pip가 명시 적으로 잘못된 python을 지정한다는 사실입니다 . 따라서 다음과 같이 파이썬을 직접 지정해야합니다.$ ~/.virtualenvs/venv/bin/python ~/.virtualenvs/venv/bin/pip --version
Neil Traft

--relocatable내 환경 후이 문제를 만났고 42 행이 잘못되었습니다 --relocatable. 제대로 작동하지 않은 것 같습니다 .
shellbye

4
나는 중간 디렉토리의 이름을 변경하면 내가 편집 활성화에 '/ 빈'PIP 스크립트로했다, 그래서 이것은 나에게 무슨 일이 있었
joarleymoraes

16

나에게 이것은 pip 또는 virtualenv 문제가 아닙니다. 파이썬 문제였습니다. 온라인 튜토리얼을 따라 한 후 ~ / .bash_profile (또는 ~ / .bashrc)에서 $ PYTHONPATH를 수동으로 설정했습니다. 이 수동 설정 $ PYTHONPATH는 아마도 허용되어야하므로 virtualenv에서 사용할 수 있습니다.

또한 add2virtualenvvirtualenv 내에서 어떤 이유로 내 $ PYTHONPATH에 프로젝트 경로를 추가하지 않았습니다.

여전히 갇혀있을 수있는 사람들을위한 몇 가지 분기 경로입니다! 건배!


11

나는 똑같은 문제가 있었고 venv 디렉토리를 제거하고 다시 만들어서 해결했습니다!

deactivate (if venv is activated first deactivate it)
rm -rf venv
virtualenv -p python3 venv
. ENV/bin/activate
pip3 install -r requirements.txt

이제 모든 것이 매력처럼 작동합니다.


내가 사용하던 pip3VIRTUALENV 기본적으로 사용 python2 따라서 사용하는 동안 pip대신 pip3. 나는 bin아니오를 찾기 위해 확인했다 pip3. 사용하면 virtualenv -p python3 venv문제가 해결되었습니다.
subtleseeker

이것은 내 문제를 해결했습니다. Pycharm의 자동 virtualenv 생성이 제대로 작동하지 않았습니다. 수동 설치가 트릭을 수행했습니다. 감사.
Loaderon

5

나도이 문제가 있었다. 호출 pip install <package_name>로부터 /bin파이썬 2.7 글로벌 사이트 패키지 디렉토리에 설치하는 파이썬 패키지 내 매버릭스 Mac에서 내 파이썬 3.3 가상 환경 내에서 디렉토리 일으켰습니다. 이것은 내 $ PATH가 pip. 기묘한. CentOS에서는 발생하지 않습니다. 나를 위해,이 솔루션은 호출 된 pip3대신 pip. 내가 설치 한 경우 핍을 통해 가상 환경 내에서 ez_setup 세 "PIP"실행 파일이 설치되었던 /bin디렉토리 - pip, pip3하고 pip3.3. 흥미롭게도 세 파일은 모두 똑 같았습니다. 부름pip3 install <package_name>Python 패키지가 로컬 사이트 패키지 디렉토리에 올바르게 설치되도록했습니다. pip가상 환경에 대한 전체 경로 이름으로 호출 하는 것도 올바르게 작동했습니다. 내 Mac이 예상대로 $ PATH를 사용하지 않는 이유를 알고 싶습니다.


5

가장 먼저 확인해야 할 것은 pip가 어떤 위치를 확인하는지입니다.

which pip

virtualenv에 있다면 다음과 같은 결과를 기대할 수 있습니다.

/path/to/virtualenv/.name_of_virtualenv/bin/pip

그러나 어떤 이유로 든 시스템 핍으로 해결되는 경우 일 수 있습니다. 예를 들어 virtualenv 내에서 이것을 볼 수 있습니다 (나쁘다) :

/ usr / local / bin / pip (또는 virtualenv 경로에없는 모든 것).

이 문제를 해결하려면 다음에서 pipconfig를 확인하십시오.

~/.pipconf
~/.conf/pip
/etc/pip.conf

그리고 Python 경로 또는 pip 경로를 강제하는 것이 없는지 확인하십시오 (이것은 나를 위해 수정했습니다).

그런 다음 새 터미널을 시작하고 virtualenv를 다시 빌드하십시오 (삭제 한 후 다시 작성하십시오).


2
또한 확인하십시오 /etc/pip.conf! 나는 비슷한 문제가 있었고 많은 디버깅 후 누군가 가이 파일을 엉망으로 만들어 작업하고 있던 시스템을 잘못 구성했다고 생각했습니다.
t.animal

저는 아치 리눅스를 사용하고 있습니다. /etc/pip.conf가 OS에 의해 설정되었다고 생각합니다.
Q. Qiao

감사! 당신은 내 하루를 구했습니다! 그 CONFIGS 파일 시스템에 숨겨진 유령 같았다
MewX

2
pip를 재정의하는 터미널 세션 정의 별칭이 있었는데, 어떤 이유로 which pip여전히 올바른 경로를 제공하고있었습니다!
Matteo

4

virtualenv 내에서 python 패키지를 설치하는 동안 동일한 문제가 발생했습니다. 제 경우에는 근본 원인이 달랐습니다. virtualenv 내에서 나는 (Ubuntu에서는 습관이 아님) 다음을 수행했습니다.

sudo easy_install -Z <package>

이로 인해 bin / pip shebang이 무시되고 루트의 비 virtualenv 파이썬을 사용하여 전역 사이트 패키지에 설치했습니다. 가상 환경이 있으므로 "sudo"없이 패키지를 설치해야합니다.


4

나는 Manjaro를 실행하는 동일한 문제를 발견했습니다. 를 사용하여 가상 환경을 만든 python3 -m ven venv다음을 사용하여 활성화했습니다 source venv/bin/actiave. which python그리고 which pip모두 바이너리의 전체 경로를 사용하는 경우에도 그러나 나는의 VIRTUALENV에 설치 할 수 없습니다의 VIRTUALENV에서 올바른 바이너리으로 지적했다. python-pip 패키지를 제거했을 때 sudo pacman -R python-pip python-reportlab(종속성을 충족시키기 위해 reportlab을 포함해야 함) 모든 것이 예상대로 작동하기 시작했습니다. 이유는 확실하지 않지만 시스템 패키지가 우선하는 이중 설치 때문일 수 있습니다.


나는 또한 Manjaro 에서이 문제가 있었고 같은 방식으로 해결했습니다. 문제를 해결 한 후 python-pippamac을 통해 다시 설치 했고 virtualenv pip가 계속 올바르게 작동했습니다. 정확히 무슨 일이 일어나고 있는지 확실하지 않지만 이중 설치 문제에 대한 귀하의 평가에 동의합니다.
sid

3

로 업데이트 한 후 비슷한 문제가 발생했습니다 pip==8.0.0. 잘못된 경로를 추적하기 위해 pip를 디버깅해야했습니다.

내 프로필 디렉토리에 빈 경로 값이있는 distutils 구성 파일이있는 것으로 밝혀졌습니다. 이로 인해 모든 패키지가 적절한 가상 환경 (제 경우에는 /lib/site-packages) 대신 동일한 루트 디렉토리에 설치되었습니다 .

구성 파일이 어떻게 거기에 있는지 또는 빈 값이 있는지 확실하지 않지만 pip를 업데이트 한 후 시작되었습니다.

다른 사람이 동일한 문제를 발견하는 경우 ~/.pydistutils.cfgpip가 기본 분산 구성으로 돌아 갔기 때문에 파일을 삭제 (또는 빈 구성 경로 제거)하면 내 환경에서 문제가 해결되었습니다.


1
이것은 내 문제이기도합니다. 내 파일이처럼 보였다, 그것은 거기에 도착하는 방법을 아무 생각 없습니다 :[install]\nprefix=
foslock

1
@foslock 네, 그게 내 모습도 마찬가지입니다. 나쁜 소식 하하!
Josiah Ruddell

3

가상 환경의 bin 디렉토리로 이동하여 다음과 같이 작성하십시오.

./pip3 install <package-name>

3

python 2 및 3이 설치된 macos에서 동일한 문제가 발생했습니다.

또한 내 .NET Framework에서 python3 및 pip3을 가리키는 별칭이 .bash_profile있습니다.

alias python=/usr/local/bin/python3
alias pip=/usr/local/bin/pip3

별칭을 제거하고 가상 환경을 다시 만들면 python3 -m venv venv문제가 해결되었습니다.


macos python 설치는 불필요하게 고통 스럽습니다. imho
iomv

나는 내 머리카락을 뽑아 내고 있었고 이것이 마침내 나를 위해 문제를 해결했습니다. "어떤 핍"이 문제를 드러냈고 "unalias pip"가 그것을 고쳤습니다.
Colin

1

오늘 같은 문제가 발생했습니다. sudo easy_install pip(OSX / Max)를 사용 하여 전역 적으로 pip를 다시 설치 한 다음 sudo virtualenv nameOfVEnv. 그런 다음 새 virtualenv를 활성화 한 후 pip명령이 예상대로 작동했습니다.

나는 sudo첫 번째 virtualenv 생성에 사용하지 않았고 그것이 virtualenv pip내에서 액세스 할 수 없었던 이유 일 수 있다고 생각합니다. pip2이 수정 전에 액세스 할 수 있었지만 이상했습니다.


디렉토리를 다른 경로로 옮겼고 virtualenv다시 실행해야 했기 때문에 이것을 얻었 습니다
citynorman

1

다음은 가상 환경을 사용할 때 골칫거리를 피할 수있는 몇 가지 사례입니다 .

  • 프로젝트 용 폴더를 만듭니다.
  • 이 폴더 안에 Virtualenv 프로젝트를 만듭니다 .
  • 프로젝트 환경을 활성화 한 후 " sudo pip install package "를 사용하지 마십시오 .
  • 작업을 마친 후에는 항상 환경을 " 비활성화 "하십시오.
  • 프로젝트 폴더의 이름을 바꾸지 마십시오.


이 관행을 더 잘 표현하기 위해 다음은 시뮬레이션입니다.


프로젝트 / 환경을위한 폴더 생성

$ mkdir venv

환경 조성

$ cd venv/ 

$ virtualenv google_drive
New python executable in google_drive/bin/python
Installing setuptools, pip...done.

활성화 환경

$ source google_drive/bin/activate

패키지 설치

(google_drive) $ pip install PyDrive
Downloading/unpacking PyDrive
Downloading PyDrive-1.3.1-py2-none-any.whl
...
...
...    
Successfully installed PyDrive PyYAML google-api-python-client oauth2client six uritemplate httplib2 pyasn1 rsa pyasn1-modules
Cleaning up...

환경 내에서 사용 가능한 패키지

(google_drive) $ python
Python 2.7.6 (default, Oct 26 2016, 20:30:19) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import pydrive.auth
>>>  
>>> gdrive = pydrive.auth.GoogleAuth()
>>>

환경 비활성화

(google_drive) $ deactivate 

$ 

환경 외부에서 사용할 수없는 패키지

(google_drive) $ python
Python 2.7.6 (default, Oct 26 2016, 20:32:10) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import pydrive.auth
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pydrive.auth
>>> 

노트:

왜 sudo는 안되나요?

Virtualenv는 $ PATH 및 기타 변수 및 설정을 정의하여 완전히 새로운 환경을 만듭니다. sudo pip install package 를 사용하면 Virtualenv를 root 로 실행 하고 생성 된 전체 환경을 이스케이프 한 다음 가상 환경이있는 프로젝트 폴더 내부가 아닌 전역 사이트 패키지에 패키지를 설치 합니다. 환경을 활성화했습니다.

프로젝트 폴더의 이름을 바꾸는 경우 (수락 된 답변에 언급 됨) ...

... 내부의 일부 파일에서 일부 변수를 조정해야합니다. 프로젝트 디렉토리에 해야합니다.

예를 들면 :

bin / pip, 라인 1 (She Bang)

bin / activate, 42 행 (VIRTUAL_ENV)


1

나는이 문제가 있었다. 문제를 일으킨 폴더 이름 중 하나에 공백이 있음이 밝혀졌습니다. 나는 공간을 제거하고 venv를 사용하여 삭제하고 다시 인스턴스화했으며 모든 것이 잘되었습니다.


1

이 문제는 virtualenv 인스턴스를 생성 한 다음 상위 폴더 이름을 변경할 때 발생합니다.


1

위의 솔루션 중 어느 것도 나를 위해 일하지 않았습니다.

내 venv가 활성화되었습니다. pip -V그리고 which pip나에게 올바른 VIRTUALENV 경로를했다,하지만 난 때 pip install활성화 venv로 패키지를 -ed, 내 pip freeze비어 있었다.

모든 환경 변수도 정확했습니다.

마지막으로 pip를 변경하고 virtualenv를 제거했습니다.

easy_install pip==7.0.2

pip install pip==10

sudo pip uninstall virtualenv

venv를 다시 설치하십시오.

sudo pip install virtualenv

venv 만들기 :

python -m virtualenv venv_name_here

그리고 모든 패키지가 다시 내 venv에 올바르게 설치되었습니다.


1

가상 환경을 만든 후 yourVirtualEnvName \ Scripts 에있는 pip를 사용해보십시오.

가상 환경의 Lib \ site-packages 내에 패키지를 설치해야 합니다.


0

나도이 문제가 있었다. 호출로 sudo pip install인해 Python 패키지가 전역 사이트 패키지 디렉토리에 설치되고 호출이 제대로 pip install작동했습니다. 따라서 virtualenv에서 sudo 를 사용하지 마십시오 .


또는 sudo를 사용하는 경우 가상 환경도 활성화해야합니다. sudo su이어서 <venv>/bin/activate하였다 pip install.
Dave

0

같은 문제입니다. Linux에서 설치된 Python3.5 및 pip 8.0.2rpm .

나는 일차적 인 원인을 찾지 못했고 적절한 대답을 할 수 없습니다. 여러 가능한 원인이있는 것 같습니다.

그러나 관찰 내용과 해결 방법을 공유하는 데 도움이 되었으면합니다.

  1. pyvenv--system-site-packages

    • ./bin포함하지 않음 pip, pip시스템 사이트 패키지에서 사용 가능
    • 패키지가 전역으로 설치됨 ( BUG? )
  2. pyvenv 없이 --system-site-packages

    • pip에 설치 ./bin되지만 (에서 ensurepip) 다른 버전입니다.
    • 패키지가 가상 환경 내에 설치됨 ( 확인 )

에 대한 명백한 해결 pyvenv--system-site-packages:

  • --system-site-packages옵션 없이 생성
  • 변화 include-system-site-packages = falsetruepyvenv.cfg파일

0

가상 환경에 대한 경로를 어떻게 든 수정하지 않았는지 확인하는 것도 좋습니다.

이 경우 첫 번째 줄 bin/pip(및 나머지 실행 파일)의 경로가 올바르지 않습니다.

이러한 파일을 편집하고 경로를 수정하거나 virtualenv를 제거하고 다시 설치할 수 있습니다.


0

Python 3ers 용

업데이트 해보십시오. 나는 똑같은 문제가 있었고 Chases의 대답을 시도했지만 성공하지 못했습니다. 이를 리팩터링하는 가장 빠른 방법은 가능한 경우 Python 부 / 패치 버전을 업데이트하는 것입니다. 3.5.1을 실행하고 3.5.2로 업데이트 한 것을 확인했습니다. Pyvenv가 다시 작동합니다.


0

잘못된 위치에 virtualenv를 만들었을 때 이런 일이 발생했습니다. 그런 다음 dir을 다른 위치로 옮길 수 있다고 생각했습니다. 중요했습니다.

mkdir ~/projects
virtualenv myenv
cd myenv
git clone [my repository]

오 젠장, 나는 projectsvirtualenv를 만들고 담당자를 복제하기 전에 cd하는 것을 잊었다 . 오 글쎄, 나는 파괴하고 재현하기에는 너무 게으르다. 나는 문제없이 단지 dir을 이동할 것입니다.

cd ~
mv myenv projects
cd projects/myenv/myrepo
pip install -r requirements

아니요, 더 많은 권한을 원합니다. 이상하다고 생각했지만 SUDO AWAY! 그런 다음 패키지를 전역 위치에 설치했습니다.

내가 배운 교훈은 virtualenv dir을 삭제하는 것입니다. 움직이지 마십시오.


0

Divio를 설치 한 후이 문제가 발생했습니다. 터미널을 시작하면서 내 PATH 또는 환경이 어떤 식 으로든 변경되었습니다.

이 경우 솔루션은 source ~/.bash_profile원래 pyenv / pyenv-virtualenv 상태로 돌아 가기 위해 이미 설정되어 있어야 하는 작업을 수행 하는 것입니다.


0

--python=python3.6플래그로 virtualenv를 설치 했지만 나중에 사용하려고 할 때 발생했습니다 pip2 install.
사용할 버전의 플래그로 virtualenv를 생성하면 권한 문제가 해결됩니다. 확인하려면 which pip또는 which pip2또는 which pip3(선택 사항에 따라 다름)을 시도 하십시오. pip사용하는 것이 venv여기에 경로가 아닌 경우 문제입니다.


0

어떻게 든 프로젝트 폴더에 접두사 = ""가있는 setup.cfg 파일

프로젝트 폴더 외부의 virtualenv에서 pip install을 실행하면 작동하므로 내부에서 기본적으로 "/"인 빈 접두사를 사용하도록 pip에 지시했습니다.

파일을 제거하면 문제가 해결되었습니다.


0

나는이 문제가 있었고 위의 모든 해결책을 시도한 후에 모든 것을 제거하고 새로 시작했습니다.

내 경우에는 sudo 에는 가상 환경이 존재하는 폴더 중 하나를 만드는 했으며 sudo는 루트에 권한을 부여합니다.

나는 매우 열 받았다! 하지만 효과가있었습니다!


0

어떤 이유로 든 우분투 시스템에서 pip를 통해 패키지를 설치하려면 'sudo'를 사용해야합니다. 이로 인해 패키지가 전역 사이트 패키지에 설치됩니다. 앞으로이 문제에 직면 할 수있는 모든 사람을 위해 여기에 게시합니다.


0

나는 제목에서 정확히 문제를 가지고 있었고 그것을 해결했습니다. Pip은 PATH를 정리 한 후 venv 사이트 패키지에 설치하기 시작했습니다. 처음에는 로컬 ~ / bin 디렉토리에 대한 경로가있었습니다.

그래서 제 조언은 "쓰레기"나 비표준적인 것들에 대한 환경 변수를 철저히 확인하는 것입니다. 불행히도 virtualenv는 이것에 민감 할 수 있습니다.

행운을 빕니다!


0

짧은 대답은 "—no-site-packages"매개 변수를 사용하여 명령 virtualenv를 실행하는 것입니다.

설명과 함께 긴 대답 :-

그래서 여기 저기 실행하고 많은 스레드를 살펴본 후 내 자신이 문제를 발견했습니다. 위의 답변은 아이디어를 주었지만 모든 것을 다시 살펴보고 싶습니다.

  • 문제는 환경을 활성화하더라도 우리가 virtualenv를 생성 한 방식 때문에 시스템 환경을 참조하는 것입니다.

  • virtualenv env -p python3 명령을 실행하면 virtualenv 가 설치되지만 전역이 아닌 site-packages.txt는 생성되지 않습니다.

  • 그 때문에 source activate 명령으로 환경을 활성화 할 때이 파일이 실행되고 있는지 확인하는 site.py (이름은 다를 수 있음, 그냥 잊어 버림)라는이 파일은 sys.path에 env 경로를 추가하지 않습니다. 시스템 파이썬을 사용하십시오.

  • 이 문제를 해결하려면 추가 매개 변수 (no-site-packages)로 virtualenv를 실행하면 해당 파일이 생성되고 환경을 활성화하면 PATH 변수에 사용자 지정 환경 경로를 추가하여 액세스 할 수 있습니다.


0

위에서 많은 좋은 논의가 있었지만 virtualenv 예제가 사용되었습니다. 이제 'conda'가 virtualenv 관리에 권장되는 도구이므로 conda env에서 pip를 실행하는 단계를 다음과 같이 요약했습니다.

env의 이름으로 py36r을 사용하고 / opt / conda / envs는 env의 접두사입니다.)

$ source /opt/conda/etc/profile.d/conda.sh # skip if already done 
$ conda activate py36r
$ pip  install pkg_xyz
$ pip  list | grep pkg_xyz

실행 된 pip는에 있어야합니다 /opt/conda/envs/py36r/bin/pip(아님 /opt/conda/bin/pip).

또는 conda activate없이 간단히 다음을 실행할 수 있습니다.

$ /opt/conda/envs/py36r/bin/pip

또한 conda를 사용하여 설치하는 경우 활성화하지 않고 설치할 수 있습니다.

$ conda install -n py36r pkg_abc ...

0

WINDOWS

나에게 해결책은을 사용하는 것이 아니 mkvirtualenv었지만 :

python -m venv path/to/your/virtualenv

workon이 올바르게 작동합니다.

virtualenv에있는 동안 : pip -Vpip에 대한 virtualenv의 경로를 표시합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.