windows如何使用python_如何在Windows上使用Python插件?

所以我在Windows 10上有一个非常相似的问题,但使用64位vim和python。

TL; DR

在我的情况下,该问题与YouCompleteMe没有关系。假设YCM符合python3。要使python27对VIM完全不可见,是可以帮助我解决问题的方法。

我已经安装TortoiseHg了一个python27.dll文件,其存储库位于中Path,这意味着vim可以看到该文件。要使其不可见,只需从以下位置删除TortoiseHg存储库Path(通常,任何包含python27.dll且路径在中的非python程序Path。通过where python27.dll在Windows控制台中进行操作,您都可以找到它们。)

C:\Windows\System32vim中也可以看到另一个python27.dll 。要使其不可见,请将其移至C:\Python27。并C:\Python27从中删除Path。

保持%PYTHONPATH%不变。确保Python 3.5存储库位于中Path。

我的系统

赢得10个专业版64位。

从每晚vim Windows构建站点下载的Vim 8.0.0045 64位巨大功能(+ dyn / python + dyn / python3)。

YouCompleteMe符合python 3.5.2 64位

Python 3.5.2 64位

Python 2.7.12 64位

%PYTHONHOME%设置为python 3安装文件夹,并包含在中

Path。

我的问题

如下所示,启动vim时会检测到错误。

消息是

Errordetectedwhileprocessing function youcompleteme#Enable[5]..124_SetUpPython:line39:E887:Sorry,this commandisdisabled,thePython's site module could not be loaded.

诊断程序

无论:echo has('python')和:echo has('python3')输出1.但是,当我这样做:py print 'test',VIM使我有同样E887的错误信息。

然后,我完全卸载了Python 2.7.12,但:echo has('python')仍然输出1并:py print 'test'仍然给出E887错误!同时:py3 print('test')始终可以正常工作并按预期输出测试。

为了确保它不是YouCompleteMe的问题,我通过启动了vim gvim -u NONE。打印测试给出相同的错误信息。因此问题出在vim本身,它无法执行与python 2.7.x站点模块相关的人员。

有人建议安装Python 2.7.9,但这对我不起作用。也许此解决方案仅适用于32位python 2.7。我没有测试,所以无法确认。

为什么发生所有这些情况:

首先,通过执行此操作,where python27.dll我在TortoiseHG存储库下找到了另一个python27.dll文件。这就是为什么:echo has('python')我卸载Python 2.7.12之后仍然输出1的原因。

然后,简单来说,:has('python')如果同时满足两个条件,则命令输出1:

Vim使用+ dyn / python功能进行编译(执行时分别使用+ dyn / python3 :has('python3'))

在您的路径中找到python27.dll文件。(分别是python35.dll。请参阅:help-python-dynamic和:help has-python获得更多信息。)但是它不做进一步检查;这就是为什么has-pythoncheck给出1但仍然检测到错误的原因。

Python 2.7.12不会自动设置%PYTHONPATH%,而Python 3.5.2会在Windows starup(如果在中找到python可执行文件)将此值设置为\Lib和

。在我仅安装python 3.5.2且vim找到TortoiseHg的python27.dll的情况下,当我运行时,vim将搜索python 2.7站点模块,但在Python 3.5的中。这就是引发错误E887的原因。因此,如果我们明确设置指向python 2.7,则E887错误将消失!\Lib\site-packagesPath:py print 'test'%PYTHONPATH%%PYTHONPATH%

参见开头的TL:DR部分。

结论

您曾经拥有两个版本的python,然后卸载了一个。您可能会高兴地认为这很干净,但是vim告诉您他找到了已删除的python,您也感到惊讶,我也是如此。那是因为通常系统中仍然存在一些神秘的python dll,不幸的是vim可以检测到它。因此,无论您是否在硬盘驱动器上保留其他版本的python,请确保vim完全看不到它。

可以在运行时由同一个实例vim调用两个版本的python的事实。真正的问题是两个版本的python共享ONE PYTHONPATH。如果PYTHONPATH与python版本不匹配,则python找不到正确的站点软件包,并使vim抱怨。这使我们大多数人认为这是一个vim问题。但不是。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值