2022年 11月 9日

Python设置32位环境

问题

因为Python的简介性,之前用它写了个程序用来升级设备。可是使用过程中有次使用者身边的设备是老旧的32位win7,暂时找不到64位的win使用,于是想重新打个32位的程序版本包,以防上述情况产生麻烦;

解决

Python的环境管理软件anaconda大名鼎鼎,不过一开始我也不太清楚我的问题是什么;因为我写的那个软件是基于pyinstaller打包的,所以理所应当的就去搜了pyinstaller 32结果找到了how to use pyinstaller for packaging 32 an exe ,很显然这是通过anaconda配置了32位的Python环境来进行编译实现的;但是这篇文章明显对anaconda不太熟悉,于是接着搜anaconda python 32bit,找到了以下文章作为参考:

  1. anaconda3下64位python和32位python共存
  2. 用anaconda保证64位和32位的python共存
  3. 使用64位anaconda/miniconda安装32位python环境

整体的流程如下

  1. 安装miniconda,参考Miniconda安装及使用

    1. 选择合适版本下载 Miniconda
    2. 配置Python清华源,解决下载包速度问题;打开Anaconda Promot中依次输入以下两条命令
      	conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
      	conda config --set show_channel_urls yes
      
      • 1
      • 2
  2. 打开 Anaconda Promot,输入conda info
    Python 64 env

  3. 继续在命令行输入:

    set CONDA_FORCE_32BIT=1
    conda info
    
    • 1
    • 2

    此时Python的环境已切换位32位,但是因为我们切换到32位时也需要调用其它库文件,所以最好是创建一个环境,便于以后切换;
    python 32 bit

  4. 创建Python环境

    conda create -n python32bit numpy matplotlib  python=3.7
    
    • 1

    其中numpy matplotlib为安装环境时同时安装的库,可以不选择;Python=3.7是指明创建环境的Python版本,可以不指明,默认创建环境使用最新版本的Python;以上指令就创建了一个名为python32bit的Python环境;

  5. 激活环境

    conda activate python32bit
    
    • 1

    撤销激活conda deactivate,删除环境conda remove -n python32bit --all

  6. 执行需要在32位环境下执行的程序(当然需要的32位包,先提前安装一下);

Tips

  1. 安装完miniconda后,要打开的是Anaconda Prompt(下面那个),否则set CONDA_FORCE_32BIT=1指令无效的,设置不成功;
    Anaconda3

    如果打开的是Anaconda Powershell Prompt则需要输入$env:CONDA_FORCE_32BIT=1,这是两款不同命令行解释器语法差异造成的,可参考:
    1. cmd查看环境变量
    2. Powershell环境变量