簡體   English   中英

在Python3.3的venv中正確使用Pip

[英]Proper use of Pip in Python3.3's venv

只是想弄清楚達到預定可使用Python3.3的實現的PEP405 ,這是VENV規范。 這是我第一次深入Python3,因為到目前為止我一直在使用Python2。

運行Linux Mint KDE,它幾乎是Debian發行版,我編譯並安裝了Python 3.3.2。 為了嘗試這個奇特的新功能,我去了我想要創建一個venv的地方,然后運行了python3.3 -m venv testenv 它正確地創造了環境。 令我困惑的是,根據規范,bin目錄中應該有一個pysetup3文件,但是沒有這樣的文件。 我的猜測是它等同於easy_install。

由於env中沒有標准的安裝腳本,我只是下載並運行了easy_install腳本,然后運行easy_install pip來獲取我的環境的pip命令。

這個pysetup3腳本是一個舊的想法,沒有削減? 我應該重新安裝easy_install並點擊每個新的venv嗎?

感謝吉姆加里森指出我的方向。 看來PEP453將解決使用venv新環境中似乎缺少的問題。 PEP453聲明pip將在Python安裝中默認可用,包括顯式引用的venv PEP453將被包含在Python 3.4中。 我想現在在Python 3.3中,我們必須手動安裝setuptoolspip ,或者繼續使用virtualenv

不知道pysetup3來自PEP405 ,但我猜不是所有內容都必須符合規范。 :)

直到pip是3.4中的Python的一部分,您可以通過運行docs中提供的此腳本來創建包含pip的虛擬環境。 該腳本只是擴展了venv的EnvBuilder類,以便在創建環境后安裝setuptools和pip。

Pip安裝到venv的“local / bin”文件夾。 您需要將其符號鏈接到“bin”文件夾,以便在運行“activate”后按預期工作。 從shell中鍵入:

ln -s /path/to/venv/local/bin/pip /path/to/venv/bin/pip

或者,您可以在腳本中的install_pip()方法中添加兩行代碼,以便每次都為您執行此操作:

def install_pip(self, context):
    ... (default script code) ...
    # Add these two lines at the end:
    pip_path = os.path.join(context.env_dir, 'local', 'bin', 'pip')
    self.symlink_or_copy(pip_path, os.path.join(context.bin_path, 'pip'))

暫無
暫無

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

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