Python在导入火炬时阻塞/停止

Python在导入火炬时阻塞/停止,python,pytorch,Python,Pytorch,我开发了一个基于pytorch的深度学习对象检测程序,效果非常好。今天我把这个程序部署在一台PC上,一切都很顺利,但程序无法启动。调试并发现,在导入pytorch时,程序会阻塞或停止 只需启动一个python提示符,键入import torch,提示符就会被阻塞top命令显示CPU/内存使用率非常低。按ctrl-c键不能停止提示。而其他库导入则可以。我试过pycrypto和我自己写的那本,都能用,但pytorch不行 我已经部署了100多次,但从未遇到过这种情况。我还尝试重新安装pytorch,

我开发了一个基于
pytorch
的深度学习对象检测程序,效果非常好。今天我把这个程序部署在一台PC上,一切都很顺利,但程序无法启动。调试并发现,在导入
pytorch
时,程序会阻塞或停止

只需启动一个python提示符,键入
import torch
,提示符就会被阻塞
top
命令显示CPU/内存使用率非常低。按ctrl-c键不能停止提示。而其他库导入则可以。我试过
pycrypto
和我自己写的那本,都能用,但
pytorch
不行

我已经部署了100多次,但从未遇到过这种情况。我还尝试重新安装pytorch,从1.6到1.4,torchvision从0.7到0.5,但仍然不起作用。未打印错误,未显示投诉

环境:

  • 操作系统:centos 7.4
  • CUDA:10.0
  • NVIDIA驱动程序:440.82
  • GPU:GTX1660
  • python:3.6
pytorch
版本:1.6和1.4

欢迎提供任何信息,提前感谢


编辑:

根据Szymon的想法,运行
python3 foo.py
,其中只包含
import torch
,然后按
ctrl-c
,提示将打印:

Traceback (most recent call last):
  File "foo.py", line 1, in <module>
    import torch
  File "/usr/local/lib64/python3.6/site-packages/torch/__init__.py", line 48, in <module>
    if platform.system() == 'Windows':
  File "/usr/lib64/python3.6/platform.py", line 1068, in system
    return uname().system
  File "/usr/lib64/python3.6/platform.py", line 1034, in uname
    processor = _syscmd_uname('-p', '')
  File "/usr/lib64/python3.6/platform.py", line 788, in _syscmd_uname
    f = os.popen('uname %s 2> %s' % (option, DEV_NULL))
  File "/usr/lib64/python3.6/os.py", line 980, in popen
    bufsize=buffering)
  File "/usr/lib64/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/lib64/python3.6/subprocess.py", line 1318, in _execute_child
    part = os.read(errpipe_read, 50000)
并使用python3运行,运行良好,打印为“Linux”。我不认为这是原因,也许只是巧合


我也尝试了更多次,其他情况看起来像是在python提示符下运行
import torch
,无法终止进程,并且没有打印任何内容。一旦它在CPU#4上打印了
软锁定,我认为这是由上次断开连接的会话中的测试过程引起的。

如果您仅使用
导入火炬
创建一个文件
foo.py
,然后从cmdline运行它,会发生什么?如果它挂起并且您发送垃圾邮件
ctrl+c
,它应该退出(或者您可以发送
kill-ID
kill-9id
)。如果它退出作为最后一次运行操作输出的内容?@SzymonMaszke我已经尝试了你的建议并更新了帖子。有什么想法吗?所以它总是挂起,这就是错误?您在编辑中说:“无法终止进程,也无法打印任何内容。”如果多次按ctrl+c键,直到崩溃,这是不可能的。它似乎挂在
platform.system()
调用上。运行的任何其他进程可能会干扰PyTorch?你也应该在PyTorch的论坛上问这个问题。您是否也使用了
conda
pip
?另外,您是否使用PyTorch的本地启动安装说明,或者选择了特定的车轮?
import platform
print(platform.system())