使用python setup.py develop在python中设置不正确的虚拟环境

时间:2015-02-21 19:55:41

标签: python git python-2.7 subprocess

我正在使用相同回购的2个分支作为输入。然后我结账第一个分支&做python setup.py开发然后运行测试脚本。 然后我收藏变化,然后结账第二分支&做python setup.py开发然后再次运行测试脚本。最后我比较了结果。   在这里,我得到的结果都是一样的。我试着检查日志,但一切都很好。任何人都可以提出可能存在的问题吗?

    execute_git_command('git stash')
    execute_git_command('git checkout ' + branch_one)
    comment_requirements_file()
    execute_git_command('python setup.py develop') #setup_virtual_env
    branch1_script_results_list = run_the_scoring_script(branch_one)
    execute_git_command('python setup.py develop --uninstall')

    execute_git_command('git stash')
    execute_git_command('git checkout ' + branch_two)
    comment_requirements_file()
    execute_git_command('python setup.py develop') #setup_virtual_env
    branch2_script_results_list = run_the_scoring_script(branch_two)
    execute_git_command('python setup.py develop --uninstall')

    print branch1_script_results_list
    print branch2_script_results_list

def execute_git_command(git_command):
    pr = subprocess.Popen(git_command,
                          shell=True,
                          stdout=subprocess.PIPE,
                          stderr=subprocess.PIPE)
    (out, error) = pr.communicate()

1 个答案:

答案 0 :(得分:0)

python setup.py develop未设置虚拟环境。它将包安装在原地。如果python引用系统python,那么您的包将全局可供系统使用。

我不确定卸载选项对setup.py的效果如何。您可以尝试pip install -e .来安装包。并pip uninstall <package_name>将其卸载。

要在给定的virtualenv中运行命令,您可以使用vex utility

$ vex <virtualenv_name> <command>

或者要为给定的shell会话激活virtualenv,请从virtualenvwrapper package调用workon shell函数:

$ workon <virtualenv_name>
$ <command1>
$ <command2>
$ deactivate

你可以use tox to run the tests in different virtualenvs