繁体   English   中英

py3 导入失败但在从 shell 运行时有效

[英]py3 import fails but works when running from shell

我已经从源代码手动安装了 python3 和 vim 作为在各种虚拟机上设置我的环境的 shell 脚本的一部分。

当我尝试在vim运行:py3 import subprocess ,我得到以下信息:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/quant/.local/lib/python3.6/subprocess.py", line 136, in <module>
    import _posixsubprocess
ImportError: /home/quant/.local/lib/python3.6/lib-dynload/_posixsubprocess.cpython-36m-x86_64-linux-gnu.so: undefined symbol: PyTuple_Type

当我在本地运行此命令时,我没有收到此错误:

pc@quant:~$ ~/.local/bin/python3 -c "import subprocess"
pc@quant:~$

当我输入:py3时,我找不到任何方法来检查正在运行哪个 python3 二进制文件,但是我的.vimrc有以下行:

let g:pymode_python="$HOME/.local/bin/python3.6"

这里真正的问题是我正在尝试使用Black ,但是当我运行:Black我得到了这个:

Error detected while processing /home/quant/.vim/plugged/black/autoload/black.vim:
line  195:
Traceback (most recent call last):
  File "<string>", line 96, in <module>
  File "<string>", line 57, in _initialize_black_env
  File "/home/quant/.local/lib/python3.6/subprocess.py", line 136, in <module>
    import _posixsubprocess
ImportError: /home/quant/.local/lib/python3.6/lib-dynload/_posixsubprocess.cpython-36m-x86_64-linux-gnu.so: undefined symbol: PyTuple_Type
Error detected while processing function black#Black:
line   10:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'Black' is not defined

作为替代方案,您可以将formatprgpython\\ -m\\ black\\ -在您的 after/python.vim 中,它依赖于标准的子进程和管道(不使用 Vim 自己的 Python)。 它还为您提供了针对每个对象的良好的gq原生集成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM