安装好YouCompleteMe后报错RequestsDependencyWarning: Old version of cryptography,Error detected 35_Pyeval

本文详细记录了在安装YouCompleteMe过程中遇到的错误及解决方法,包括更新cryptography和pyOpenSSL模块,以及如何正确配置vimrc文件,确保YouCompleteMe与Python2.7兼容。

安装YouCompleteMe后报错。

".vimrc" 95L, 3653C
Error detected while processing function <SNR>35_PollServerReady[7]..<SNR>35_Pyeval:
line    4:
/home/lenovo/.vim/bundle/YouCompleteMe/third_party/requests_deps/requests/requests/__init__.py:83: RequestsDependencyWarning: Old versi
on of cryptography ([1, 2, 3]) may cause slowdown.

解决方法

安装python2.7的pip包管理器,用python2.7升级一下cryptography,就是这里,我习惯性用了pip3,所以浪费了好一会,记住是python2.7的pip。

sudo apt install python-pip
sudo pip install --upgrade cryptography

vim ~/.vimrc
# 在vimrc加入下面这行代码告诉vim,ycm用的是python2.7
let g:ycm_server_python_interpreter = '/usr/bin/python2.7'

退出编辑,执行source命令重新加载一下vimrc,source ~/.vimrc

又报其他error

Error detected while processing function <SNR>27_RestartServer:
line    3:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/lenovo/.vim/bundle/YouCompleteMe/python/ycm/youcompleteme.py", line 291, in RestartServer
    self._ShutdownServer()
  File "/home/lenovo/.vim/bundle/YouCompleteMe/python/ycm/youcompleteme.py", line 286, in _ShutdownServer
    SendShutdownRequest()
  File "/home/lenovo/.vim/bundle/YouCompleteMe/python/ycm/client/shutdown_request.py", line 45, in SendShutdownRequest
    request.Start()
  File "/home/lenovo/.vim/bundle/YouCompleteMe/python/ycm/client/shutdown_request.py", line 39, in Start
    display_message = False )
  File "/home/lenovo/.vim/bundle/YouCompleteMe/python/ycm/client/base_request.py", line 138, in PostDataToHandler
    BaseRequest.PostDataToHandlerAsync( data, handler, timeout ),
  File "/home/lenovo/.vim/bundle/YouCompleteMe/python/ycm/client/base_request.py", line 148, in PostDataToHandlerAsync
    return BaseRequest._TalkToHandlerAsync( data, handler, 'POST', timeout )
  File "/home/lenovo/.vim/bundle/YouCompleteMe/python/ycm/client/base_request.py", line 169, in _TalkToHandlerAsync
    return BaseRequest.Session().post(
  File "/home/lenovo/.vim/bundle/YouCompleteMe/python/ycm/client/base_request.py", line 217, in Session
    from requests_futures.sessions import FuturesSession
  File "/home/lenovo/.vim/bundle/YouCompleteMe/third_party/requests-futures/requests_futures/sessions.py", line 24, in <module>
    from requests import Session
  File "/home/lenovo/.vim/bundle/YouCompleteMe/third_party/requests_deps/requests/requests/__init__.py", line 95, in <module>
    from urllib3.contrib import pyopenssl
  File "/home/lenovo/.vim/bundle/YouCompleteMe/third_party/requests_deps/urllib3/src/urllib3/contrib/pyopenssl.py", line 46, in <module
>
    import OpenSSL.SSL
  File "/usr/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 118, in <module>
    SSL_ST_INIT = _lib.SSL_ST_INIT
AttributeError: 'module' object has no attribute 'SSL_ST_INIT'

又一个模块升级一下
sudo python -m easy_install --upgrade pyOpenSSL

原因分析

安装YouCompleteMe的时候我用的是python3 ./install.py安装的,也就是用的python3,但是ycm的内核使用python2编译的,所以我就得好像也看到有过这样一条报错。
YCM core library compiled for Python 2 but loaded in Python 3
所以里面有很多python2和python3的移植有点问题,解决办法就是指定YCM使用python2.7。

<think>好的,我现在需要帮助用户解决PVE重启脚本中出现的TASK ERROR报错问题,特别是“unexpected control message”的错误。首先,我得理解用户的问题场景。PVE(Proxmox Virtual Environment)是一个基于Debian的虚拟化管理平台,用户可能在编写或执行重启脚本时遇到了错误提示,导致任务失败。接下来,我需要根据用户提供的引用信息和一般性知识来分析可能的原因和解决方案。 用户提到的错误信息是“TASK ERROR unexpected control message”,这通常与进程间通信或控制消息处理有关。结合用户提供的引用内容,特别是引用[3]中提到的vsftpd服务重启失败的情况,可能涉及到服务配置或权限问题。此外,引用[1]中的YouCompleteMe插件服务器关闭问题,可能与依赖项或环境配置有关。引用[2]的curl命令错误可能与网络或服务状态有关。这些引用虽然不直接关联PVE,但可以推断出类似的问题可能涉及服务配置、权限、依赖或网络问题。 接下来,我需要逐步分析可能导致PVE重启脚本出现该错误的原因: 1. **脚本语法错误**:检查重启脚本是否有语法错误,比如拼写错误、命令格式不正确等。例如,使用错误的命令选项或参数可能导致进程无法正确执行,从而返回控制消息错误。 2. **服务依赖问题**:PVE中的某些服务可能在脚本执行时未正确启动或存在依赖关系未满足。例如,虚拟机或容器的启动可能依赖于网络服务或存储服务,如果这些依赖服务未就绪,可能导致控制消息错误。 3. **权限不足**:执行脚本的用户可能没有足够的权限操作某些资源,比如重启虚拟机或访问特定文件。例如,非root用户执行需要特权的命令时,可能因权限不足而失败。 4. **配置错误**:PVE的配置文件(如`/etc/pve`下的相关文件)可能存在错误,导致脚本执行时无法正确解析指令。例如,虚拟机配置中的错误参数可能引发异常。 5. **资源冲突**:资源如端口、存储卷被占用,导致脚本无法正常重启相关服务。例如,端口冲突可能导致服务无法启动,进而触发错误。 6. **日志分析**:查看PVE的日志文件(如`/var/log/pve`中的日志)以获取详细的错误信息。例如,系统日志可能记录更具体的错误原因,帮助定位问题。 接下来需要验证这些可能性,并给出相应的解决方案: - **检查脚本语法**:用户应使用Shell脚本检查工具(如`shellcheck`)或手动检查脚本中的命令是否正确。例如,确保所有的命令路径正确,选项使用得当。 - **验证服务状态和依赖**:使用`systemctl status`命令检查相关服务的运行状态,确认所有依赖服务已启动。例如,检查`pve-cluster`、`pveproxy`等服务是否正常运行。 - **权限检查**:确保执行脚本的用户(如root或具有sudo权限的用户)有足够的权限。例如,使用`sudo`执行脚本或修改脚本的权限设置。 - **审查配置文件**:检查PVE相关的配置文件是否有语法错误或不合理的配置项。例如,使用`pveverify`工具验证配置文件的正确性。 - **解决资源冲突**:使用`netstat`或`lsof`检查端口占用情况,或查看存储卷是否被其他进程锁定。例如,释放被占用的端口或等待资源可用后再执行脚本。 - **分析日志文件**:通过查看`/var/log/pve/tasks/`目录下的日志文件,找到具体的错误信息。例如,日志可能指出某个虚拟机配置错误或存储无法挂载。 此外,用户提供的引用中,引用[3]提到服务重启失败后通过检查服务状态和日志解决问题,这提示用户应同样检查PVE服务的状态和日志。例如,运行`journalctl -u pve.service`来查看详细的启动日志。 可能的解决方案步骤总结: 1. **检查脚本语法**:使用工具或手动检查脚本中的命令和结构是否正确。 2. **验证权限**:确保执行用户有足够权限,必要时使用`sudo`。 3. **检查服务依赖**:确认所有相关服务已启动并运行正常。 4. **审查配置文件**:使用PVE提供的工具或手动检查配置文件。 5. **查看日志**:分析PVE的日志文件以获取具体错误信息。 6. **资源冲突排查**:检查端口、存储等资源是否被占用或冲突。 最后,生成相关问题供用户进一步参考,帮助他们深入理解问题及解决方法。</think>### PVE重启脚本TASK ERROR报错解决方案 **问题分析** PVE重启脚本出现`TASK ERROR unexpected control message`错误通常与控制消息处理异常相关,可能由以下原因导致: 1. **脚本语法或逻辑错误**:例如命令格式错误或资源引用错误。 2. **服务依赖未满足**:如虚拟机依赖的存储服务未启动。 3. **权限不足**:执行脚本的用户缺乏操作虚拟化资源的权限。 4. **配置文件错误**:PVE配置文件(如`/etc/pve/qemu-server/<VMID>.conf`)中存在无效参数[^3]。 5. **资源冲突**:端口、存储卷被其他进程占用。 --- ### **逐步解决方案** #### 1. 检查脚本语法与命令 - **验证脚本语法**:使用`bash -n script.sh`检查脚本语法错误。 ```bash bash -n /path/to/restart_script.sh ``` - **检查命令路径**:确保脚本中所有命令(如`qm restart <VMID>`)路径正确,必要时使用绝对路径。 #### 2. 确认权限与用户组 - **以root用户执行**:PVE管理命令通常需要root权限。 ```bash sudo ./restart_script.sh ``` - **验证用户组**:执行用户需属于`www-data`组(PVE Web管理权限组): ```bash usermod -aG www-data your_username ``` #### 3. 检查服务依赖 - **查看PVE服务状态**: ```bash systemctl status pve-cluster pveproxy pvedaemon ``` 若服务未运行,尝试重启: ```bash systemctl restart pve-cluster ``` #### 4. 审查配置文件 - **检查虚拟机配置**: ```bash cat /etc/pve/qemu-server/<VMID>.conf ``` 确保配置参数(如硬盘路径、网络设置)有效。例如,错误的存储路径会导致虚拟机重启失败。 #### 5. 排查资源冲突 - **检查端口占用**: ```bash netstat -tulpn | grep <port> ``` - **释放被锁定的存储卷**: ```bash lsof /var/lib/vz/images/<VMID>/*.raw ``` #### 6. 分析日志文件 - **查看任务日志**: ```bash tail -f /var/log/pve/tasks/<task_id>.log ``` - **系统日志分析**: ```bash journalctl -u pve.service --since "10 minutes ago" ``` --- ### **示例修复流程** 若日志显示`storage 'local-zfs' not found`: 1. 检查存储配置: ```bash cat /etc/pve/storage.cfg ``` 2. 确认存储池状态: ```bash zpool status ``` 3. 若存储池异常,修复后重启PVE集群服务: ```bash systemctl restart pve-cluster ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值