簡介:Python應用程序通常會使用包和模塊,但不是作為標準庫的一部分。應用程序有時需要一個特定版本的庫,因為應用程序可能需要一個特定的已被修復的bug或應用程序可能會被寫入使用一個過時的版本的庫的接口。
這意味著它可能不是一個滿足每個應用的要求的Python安裝。如果應用程序A需要一個1.0版本的特定模塊但應用程序B需要的版本2.0,兩個應用的需求就產生沖突,安裝版本1.0或2.0都會使得其中一個應用不發正常運行。
解決這個問題的方法是創建一個虛擬環境,一個含義特定版本的Python解釋器和一些額外包的自包含目錄樹。
不同的應用程序可以使用不同的虛擬環境。要解決早期示例的沖突需求,應用A可以使用安裝1.0版本的虛擬環境,同時應用B可以使用安裝2.0的虛擬環境。如果應用B需要更新一個庫到3.0版本,它不會影響應用A的環境。
創建虛擬環境:創建和管理虛擬環境的腳本叫pyvenv。pyvenv會隨著你安裝最新的Python版本同時安裝,腳本同時還有版本號。如果你的機器上安裝了不同版本的Python,你可以使用pyvenv-3.4來使用指定的版本或任何一個你想使用的版本。
為了創建虛擬環境,切換到指定目錄下運行如下腳本:
pyvenv tutorial-env
它將會創建 tutorial-env目錄,如果不存在的話,同時還會創建一個包含Python解釋器,其他標準庫拷貝和其他文件的目錄。
在windows下,運行:
tutorial-env/Scripts/activate
在 Unix 或 MacOS,運行:
source tutorial-env/bin/activate
使用PIP管理包:一旦激活了虛擬環境,你可以通過使用pip來安裝,更新和刪除包。默認的,pip將會從Python包索引安裝包,https://pypi.python.org/pypi。你可以在瀏覽器中打開此鏈接查看,或者使用PIP有限的搜索功能。
(tutorial-env) -> pip search astronomy
skyfield - Elegant astronomy for Python
gary - Galactic astronomy and gravitational dynamics.
novas - The United States Naval Observatory NOVAS astronomy library
astroobs - Provides astronomy ephemeris to plan telescope observations
PyAstronomy - A collection of astronomy related tools for Python
....
查看[官方手冊][id]了解pip詳細使用方法。
[id]: https://docs.python.org/3/installing/index.html#installing-index