在Python3.3'中正确使用Pip;斯文夫

在Python3.3'中正确使用Pip;斯文夫,python,python-3.3,Python,Python 3.3,只是想弄清楚Python3.3的实现的预期用途,这是venv规范。这是我第一次深入研究Python3,因为我一直在Python2中 运行LinuxMintKDE,这几乎是一个Debian发行版,我编译并安装了Python3.3.2。为了尝试这个奇特的新功能,我去了我想创建一个venv的地方,运行了python3.3-m venv testenv。它正确地创建了环境。让我困惑的是,根据规范,bin目录中应该有一个pysetup3文件,但是没有这样的文件。我的猜测是,它相当于易于安装 由于env中没

只是想弄清楚Python3.3的实现的预期用途,这是venv规范。这是我第一次深入研究Python3,因为我一直在Python2中

运行LinuxMintKDE,这几乎是一个Debian发行版,我编译并安装了Python3.3.2。为了尝试这个奇特的新功能,我去了我想创建一个venv的地方,运行了
python3.3-m venv testenv
。它正确地创建了环境。让我困惑的是,根据规范,bin目录中应该有一个pysetup3文件,但是没有这样的文件。我的猜测是,它相当于易于安装

由于env中没有标准的安装脚本,我只是下载并运行easy_install脚本,然后运行
easy_install pip
为我的env获取一个pip命令


这是不是pysetup3脚本是一个没有被剪切的旧想法?我应该在每个新的venv上重新安装easy_install和pip吗?

感谢Jim Garrison为我指明了方向。它似乎可以使用
venv
解决新环境中缺少的问题。PEP453声明在Python安装中默认情况下,
pip
将可用,包括显式引用的
venv
。PEP453计划包含在Python 3.4中。我想现在在Python3.3中,我们必须手动安装
setuptools
pip
,或者继续使用
virtualenv


不知道pysetup3是从哪里来的,但我想不是所有的东西都必须符合规范:)

直到pip成为Python 3.4中的一部分,您可以通过运行文档中提供的程序来创建包含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'))

有趣。可能值得注意的是,没有提到
pysetup3
脚本,但提到(在灰色的注释:框中)必须在激活
venv
后进行
distribute\u setup.py
舞蹈。我尝试过使用Python 3.3的
venv
,但是在经历了这样的问题之后,我又回到了使用
virtualenv
。我希望Python3.4能使将来使用
venv
更好。@Jim Garrison,我想知道这是否是他们没有包含脚本的原因,以便在创建venv时自动安装easy\u install和pip。