7

嗨,我通过 python 包装器运行带有线程的子进程,当我使用子进程模块时,我收到以下警告。

“_posixsubprocess 模块没有被使用,如果你的程序使用线程,子进程的可靠性可能会受到影响。”

这意味着什么?我怎样才能摆脱它?

4

5 回答 5

3

检查您是否可以import _posixsubprocess手动,子进程尝试在其代码中导入它,如果它产生异常,则会产生此警告。

于 2012-09-20T07:56:24.860 回答
3

取消设置 PYTHONHOME 已经为我解决了这个问题。

于 2018-08-17T20:23:21.387 回答
2

我在使用 conda 安装的工具时遇到了同样的问题。原来有一种来自 pip 的 subprocess32 的冲突版本。运行这个就可以了:

pip uninstall subprocess32
conda install -c conda-forge subprocess32 
于 2018-07-06T10:31:17.370 回答
1

我的解决方案是执行以下操作:

pip uninstall subprocess32
pip install -U subprocess32

最初,当我尝试导入时收到警告matplotlib

Python 2.7.13 (default, May 16 2017, 12:02:12) 
[GCC 6.2.0 20160901] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
/home/methuselah/.local/lib/python2.7/site-packages/subprocess32.py:472: RuntimeWarning: The _posixsubprocess module is not being used. Child process reliability may suffer if your program uses threads.
  "program uses threads.", RuntimeWarning)
>>>

重新安装后subprocess32,警告消失:

Python 2.7.13 (default, May 16 2017, 12:02:12) 
[GCC 6.2.0 20160901] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> 
于 2017-05-16T19:24:41.580 回答
0

如果您使用的 Python 版本不止一个,则可能是这样。您需要为每个程序指定正确的 python 版本。例如,我需要用于 miniconda 的 python 3.7,但 mendeleydesktop 声称此版本存在问题:

_posixsubproces 及其位置也有问题

所以我没有只在 phyton 环境中运行程序,而是使用 python2.7,它解决了这个问题。希望能帮助到你。干杯,弗洛尔

于 2020-07-03T05:33:36.860 回答