大漠插件的DLL调用只有32位,因此,我们只能使用32位的Python调用大漠插件。
使用64位的Python调用大漠插件,是会报错的。
Traceback (most recent call last):
File A:\PythonProgram\Anaconda\envs\spyder\lib\site-packages\win32com\client\dynamic.py:86 in _GetGoodDispatch
IDispatch = pythoncom.connect(IDispatch)
com_error: (-2147221021, '操作无法使用', None, None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File E:\Python\PYQT工作区\未命名0.py:18 in <module>
dm = win32com.client.Dispatch('dm.dmsoft')
File A:\PythonProgram\Anaconda\envs\spyder\lib\site-packages\win32com\client\__init__.py:117 in Dispatch
dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch, userName, clsctx)
File A:\PythonProgram\Anaconda\envs\spyder\lib\site-packages\win32com\client\dynamic.py:106 in _GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File A:\PythonProgram\Anaconda\envs\spyder\lib\site-packages\win32com\client\dynamic.py:88 in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(
com_error: (-2147221164, '没有注册类', None, None)
因此,如果电脑上没有安装有32的Python,那么需要先进行安装。
这里使用Anaconda来对python进行版本管理,并且通过anaconda实现32位和64位python共存。
如果没有Anaconda,那么先安装Anaconda就可以了。
Python64位能够用更大的内存空间,Python64位可以在64位的系统下运行,但是不能在32位系统下运行。
Python32位能够在32位和64位上运行,但是内存空间较小。
64bit软件和32bit软件最大的区别是64bit的软件可以同时操作大于4GB的内存。
注意这里的内存指的是地址空间,而不是物理内存。
比如现在有一个10GB的数据库需要进行排序。64bit的软件可以malloc一个10GB的空间把整个数据库“放进”内存然后使用任意经典排序算法,而32bit的软件在malloc时就会崩溃(out-of-memory)。
怎么判断自己使用的Python是32位还是64位的?
import platform
ver = platform.architecture()
print(ver)
使用32位的Python运行结果如下:
('32bit', 'WindowsPE')
在电脑的左下角,右键单击弹出菜单,选择运行,左键单击,然后输入cmd,点击确定,进入命令窗口。
在cmd界面,即可输入命令代码。
在命令行,输入以下命令,即可查看当前的Python环境。
conda info
可以看到,我现在的环境是64位的:platform : win-64
active environment : None
user config file : C:\Users\caogu\.condarc
populated config files : C:\Users\caogu\.condarc
conda version : 4.12.0
conda-build version : 3.21.4
python version : 3.8.8.final.0
virtual packages : __win=0=0
__archspec=1=x86_64
base environment : A:\PythonProgram\Anaconda (writable)
conda av data dir : A:\PythonProgram\Anaconda\etc\conda
conda av metadata url : None
channel URLs : https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
package cache : A:\PythonProgram\Anaconda\pkgs
C:\Users\caogu\.conda\pkgs
C:\Users\caogu\AppData\Local\conda\conda\pkgs
envs directories : A:\PythonProgram\Anaconda\envs
C:\Users\caogu\.conda\envs
C:\Users\caogu\AppData\Local\conda\conda\envs
platform : win-64
user-agent : conda/4.12.0 requests/2.25.1 CPython/3.8.8 Windows/10 Windows/10.0.19041
administrator : False
netrc file : None
offline mode : False
# 查看当前工作环境
conda info
# 列出所有的环境
conda env list
conda info -e
conda info --envs
# 切换到32位
set CONDA_FORCE_32BIT=1
# 切换到64位
set CONDA_FORCE_32BIT=0
# 在虚拟环境env_name中安装python
# conda create -n 环境名称 python=版本号
conda create -n python32 python=3.8
# 激活环境
conda activate python32
# 关闭环境
conda deactivate python32
# 移除环境
conda remove -n python32 --all
# 安装库
# 在虚拟环境中安装相关的库
conda create -n python32 numpy python=3.8
conda create -n python32 numpy matplotlib scipy pandas scikit-learn python=3.8
# 也可以使用pipinstall或conda install进行安装
pip install pandas
conda install pandas
使用**set CONDA_FORCE_32BIT=1
命令切换到32位的环境,然后使用conda create -n python32 python=3.8
**命令,就可以自动下载并安装32位的Python了。
出现这个界面,表明32位的Python安装成功了。
done
#
# To activate this environment, use
#
# $ conda activate python32
#
# To deactivate an active environment, use
#
# $ conda deactivate
Retrieving notices: ...working... done
安装好了32位的Python后,建议安装Spyder。
Spyder是Python的集成开发环境,功能强大,写代码时非常好用。
首先,使用set CONDA_FORCE_32BIT=1
切换到32位的平台。
然后,使用conda activate python32
命令,切换到python32的环境。
最后,使用安装命令:
conda install spyder
出现这个界面,表明安装成功。
done
Retrieving notices: ...working... done
用32位的Python安装包时,出现错误:
(python32) C:\Users\caogu>pip install paddlepaddle
Unable to create process using 'A:\PythonProgram\Anaconda\envs\python32\python.exe A:\PythonProgram\Anaconda\envs\python32\Scripts\pip-script.py install paddlepaddle'
解决方法:
python32 -m pip install --upgrade
命令,更新pip。python32 -m pip install --upgrade --force-reinstall pip
找到C:\Users\用户名.condarc文件,用txt打开,替换里面的内容为:
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
记得备份原文件。