要为ansible运行创建一个最新的虚拟环境, 以下是步骤:

  1. 下载最新的python3.8.3安装包:
  2. 解压:
  3. 创建虚拟环境目录: mkdir /root/.python_env
  4. 编译安装python
  5. 配置一下pip国内源, 以增加安装速度
  6. 安装virtualenvwrapper
  7. 安装过程中报错: ImportError: No module named ‘_ctypes’, 解决方法是(参考https://stackoverflow.com/questions/27022373/python3-importerror-no-module-named-ctypes-when-using-value-from-module-mul):

    然后重新编译安装python3
  8. 定义环境变量

     
  9. 创建ansible虚拟环境:

     
  10. The prompt change tells us we’ve successfully made, and activated, our first python 3 virtualenv. Validate it is configured as expected.

     
  11. 安装ansible

     
  12. Confirm the virtualenv is configured as expected,

     
  13. 离开虚拟环境: deactivate
  14. 进入虚拟环境:workon ansible

 

在MacOS上创建虚拟环境:

首先有两个python:

修改pip国内源, 以增加安装速度(注意配置文件路径跟centos不同):

 

添加环境变量到.zshrc(注意mac上用pip install安装时要用python -m pip install, 另外,加上–user可避免权限问题):

安装virtualenvwrapper

创建虚拟环境(py2和py3):

vscode使用虚拟环境及调试的问题:

  1. 打开vscode, 按”Code –> 首选项 –> 设置”的顺序进入用户设置, 搜索python.venvPath(默认里面为空,将其设置为你的虚拟环境所在目录: ~/.virtualenvs)
  2. 按菜单栏”查看 –> 命令面板”或command+shift+p进入命令面板, 输入Python:Select Interpreter, 选择相应的虚拟目录
  3. 试试按F5看, 应该可以在vscode中按虚拟环境的配置来进行调试了

 

问题解决:

  • 在debian系统上,编译完python后没有pip, 所以需要手动安装:

pip如果没有正确安装,尝试从标准库中对其进行引导:

./python -m ensurepip –default-pip

如果仍然无法运行,通过下述方式安装pip

但是无论用哪种方式, 都出现了下面报错:

root@uos-PC:~/.python_env/bin# ./python -m ensurepip –default-pip
Traceback (most recent call last):
。。。
import pip._internal
zipimport.ZipImportError: can’t decompress data; zlib not available

这是因为缺少zlib 的相关工具包导致的,知道了问题所在,那么我们只需要安装相关依赖包即可,
1、打开终端,输入一下命令安装zlib相关依赖包:

然后重新进行python编译安装

安装pip时要配置一下pip国内源

  • import ssl报错:ImportError: No module named _ssl

解决:

先安装或升级openssl, 版本要1.1.x之后,从openssl的官网获取对应系统安装包的下载地址,编译安装(默认装在/usr/local/ssl)

在python源码包根目录中, 修改setup.py:

修改Module/Setup.dist文件, 将下列注释去掉:

重新编译安装python:

测试:

  • Python shell(3.5.2版本) 中 Delete/Backspace 键乱码问题. 在linux 中,使用python3.5.2 解释器时不能删除,回退等,一按就是^H,让人很是无奈呀。

 

其实就是缺少了readline库

解决: yum install -y readline readline-devel

安装完成,还需要再次编译python3.5.2的源代码

make & make install 即可

现在再次使用python3.5的解释器,就没有问题了

—————————————————————————-

下面是总安装脚本(centos7):

 

问题: 2023-9-13

在Ubuntu 22.04上, 激活python环境后, import ssl, 报:

libssl.so.1.1: cannot open shared object file: No such file or directory
解决:

问题: 2023-10-7

编译安装Python-3.11.5时,出现以下报错:

Fatal Python error: init_import_site: Failed to import the site module
Python runtime state: initialized
Traceback (most recent call last):
File “/data/install/python/Python-3.11.5/Lib/site.py”, line 73, in <module>
import os
File “/data/install/python/Python-3.11.5/Lib/os.py”, line 29, in <module>
from _collections_abc import _check_methods
SystemError: <built-in function compile> returned NULL without setting an exception
make[1]: *** [Python/frozen_modules/abc.h] Error 1
make: *** [profile-opt] Error 2

解决:centos7默认的gcc版本是4.8的, 需要升级gcc版本,分别执行下面三条命令即可,无需手动下载源码编译:

 

编译脚本:

 

Categories: 未分类

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *