小编Don*_*fft的帖子

从子进程调用时,Python程序永远挂起

pip测试套件使用子进程调用来运行集成测试.最近放置了PR,删除了一些旧的兼容性代码.特别是它b()用显式使用b""文字替换了一个函数.然而,这似乎打破了特定子进程调用永远挂起的地方.更糟糕的是,它只会永远挂在Python 3.3(可能只有Python 3.3.5)上,并且不能轻易地在Travis之外复制.

相关的拉动请求:

其他Pull请求也会出现类似的问题,但是在不同版本的Python和不同的测试用例中它们会失败.这些Pull请求是:

另一位用户今天在IRC上向我报告了一个类似的问题,他们说他们可以在Ubuntu 14.04上使用Python 3.3从死神(但不是在OSX上)本地再现它,而不仅仅是在特拉维斯,就像我迄今为止大部分都能做到的那样.他们给我发了一些重现的步骤:

$ git clone git@github.com:xavfernandez/pip.git
$ cd pip
$ git checkout debug_stuck
$ pip install pytest==2.5.2 scripttest==1.3 virtualenv==1.11.6 mock==1.0.1 pretend==1.0.8 setuptools==4.0
$ # The below should pass just fine
$ py.test -k test_env_vars_override_config_file -v -s
$ # Now edit pip/req/req_set.py and remove method remove_me_to_block or change its content to print('KO') or pass
$ # The below should hang forever
$ py.test -k test_env_vars_override_config_file …
Run Code Online (Sandbox Code Playgroud)

python subprocess

35
推荐指数
1
解决办法
1909
查看次数

标签 统计

python ×1

subprocess ×1