簡體   English   中英

沒有VirtualEnv的Python2.7中的站點包

[英]Site-Packages in Python2.7 without VirtualEnv

當我使用pip install matplotlib --upgrade --upgrade時,它將運行並安裝matplotlib和所有依賴項,最后讀取已uninstalled version '1.3.1' 運行python和matplotlib.__version__再次輸出'1.3.1' ,即使它剛剛被聲明為已卸載。 如何切換運行的python,希望是pip安裝和更新軟件包的位置?

編輯:從bash使用python運行Mac OS 10.10.1。

which pip返回/usr/local/bin/pip以及which -a python返回

/opt/local/bin/python
/opt/local/bin/python
/Library/Frameworks/Python.framework/Versions/Current/bin/python
/Library/Frameworks/Python.framework/Versions/Current/bin/python
/Library/Frameworks/Python.framework/Versions/Current/bin/python
/Library/Frameworks/Python.framework/Versions/2.6/bin/python
/usr/bin/python

我假設是問題所在。 我之前已經刪除了2.6,但是我的Mac使用了它,因此不得不還原操作系統。 如何在它們之間切換。

您的問題似乎是您有兩個或多個Python 2.7安裝,並且PATH上的第一個python來自一個安裝(MacPorts版本,位於/opt/local/bin/python ),而PATH上的第一個pip來了來自另一個(您還沒有說出來,但我想它是/usr/local/bin/pip ,它已連接到預安裝的Apple Python或另一個Python)。

如果要在整個文件系統上安裝大量Python,並在不使用virtualenv情況下在它們之間進行切換,則只需編寫一些腳本並修改PATH (還有您的PYTHONPATH ,如果您使用的是…,但希望您不要。)

但我不建議這樣做。 如果要使用MacPorts Python:

  • 確保已安裝MacPorts pip (應該在/opt/local/bin/pip )。 我不知道MacPorts是否具有單獨的python-pip程序包,或者期望您手動安裝它 ,否則。
  • 如果您不知道如何重新整理Shell緩存,只需在安裝MacPorts pip之后打開一個新的Terminal窗口。 或者,為了安全起見,只需明確使用/opt/local/bin/pip直到下次注銷並重新登錄。
  • 編寫腳本時,您可能希望使用#!/opt/local/bin/python而不是#!/usr/bin/env python
  • 卸載除MacPorts和預先安裝的Apple之外的所有其他Python。
  • 您為其他Python安裝意外安裝的所有軟件包,只需為MacPorts重新安裝即可。 另外,通常應該首先檢查端口,例如port install python-ipythonport install python27-ipython ,並且只有在沒有portfile時才回退到pip

附帶說明一下,許多有此問題的人也使MacPorts與Homebrew沖突(有時甚至是Fink,gentoo-alt或其他軟件包管理器,但如今它們都不是很常見的)。 如果您正在使用兩個這樣的程序包管理器,那么除非您知道自己在做什么,否則就不應該這樣做。 我會完全禁用一個(如果不卸載,至少要從PATH中刪除它)。 這樣做之后,您可能必須重建一堆東西,但是總比擁有一堆有時會起作用的東西要好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM