前言

由于工作环境,我的工作机是在离线环境下的,没法连接外网。但是自己又想学习一下wxpython,只好自己手动离线安装,本来以为很简单的,但是实际上。。。一言难尽。

基本环境:python pip easy_install

安装python2.7

直接下载msi数据包安装,如果无法识别安装,那么:

  • 1、确定msi数据包的完整性,包括大小、格式;

  • 2、确定开启开启windows installer:win + R --> 输入Services.msc --> 找到windows installer --> 左侧手动启用

python3.X 安装更为简单,直接双击.exe文件安装即可,且都需要选定添加环境变量。

安装wxpython

1、下载

下载地址:https://pypi.org/project/wxPython/4.0.1/#files 选择对应的文件进行安装,我的选择是: wxPython-4.0.1-cp27-cp27m-win_amd64.whl

其中:

cp27 表示 python2.7

win_amd64 表示 windows 64位

在这之外:win32 表示 32位

2、安装

将下载好的wxpython**.whl文件转移到python安装路径下的Scripts目录下,我的是:C:\Python27\Scripts 然后打开cmd或者powershell,切换到该目录下:

PS C:\User\Yanta> cd C:\Python27\Scripts

执行命令 pip install wxPython-4.0.1-cp27-cp27m-win_amd64.whl ,此时会报错:wxPython-4.0.1-cp27-cp27m-win_amd64.whl is not a supported wheel on this platform.

PS C:\Python27\Scripts> pip install .\wxPython-4.0.1-cp27-cp27m-win_amd64.whl
wxPython-4.0.1-cp27-cp27m-win_amd64.whl is not a supported wheel on this platform.

此时可以尝试使用easy_install安装,结果提示缺少 six 包。

PS C:\Python27\Scripts> .\easy_install-2.7.exe .\wxPython-4.0.1-cp27-cp27m-win_amd64.whl
Processing wxPython-4.0.1-cp27-cp27m-win_amd64.whl
c:\python27\lib\site-packages\setuptools\pep425tags.py:89: RuntimeWarning: Config variable 'Py_DEBUG' is unset, Python ABI tag may be incorrect
  warn=(impl == 'cp')):
c:\python27\lib\site-packages\setuptools\pep425tags.py:93: RuntimeWarning: Config variable 'WITH_PYMALLOC' is unset, Python ABI tag may be incorrect
  warn=(impl == 'cp')):
c:\python27\lib\site-packages\setuptools\pep425tags.py:99: RuntimeWarning: Config variable 'Py_UNICODE_SIZE' is unset, Python ABI tag may be incorrect
  sys.version_info < (3, 3))) \
Installing wxPython-4.0.1-cp27-cp27m-win_amd64.whl to c:\python27\lib\site-packages
writing requirements to c:\python27\lib\site-packages\wxPython-4.0.1-py2.7-win-amd64.egg\EGG-INFO\requires.txt
Adding wxPython 4.0.1 to easy-install.pth file
Installing wxdemo-script.py script to c:\python27\Scripts
Installing wxdemo.exe script to c:\python27\Scripts
Installing img2png-script.py script to c:\python27\Scripts
Installing img2png.exe script to c:\python27\Scripts
Installing pyslices-script.py script to c:\python27\Scripts
Installing pyslices.exe script to c:\python27\Scripts
Installing img2py-script.py script to c:\python27\Scripts
Installing img2py.exe script to c:\python27\Scripts
Installing pyslicesshell-script.py script to c:\python27\Scripts
Installing pyslicesshell.exe script to c:\python27\Scripts
Installing wxget-script.py script to c:\python27\Scripts
Installing wxget.exe script to c:\python27\Scripts
Installing helpviewer-script.py script to c:\python27\Scripts
Installing helpviewer.exe script to c:\python27\Scripts
Installing pyshell-script.py script to c:\python27\Scripts
Installing pyshell.exe script to c:\python27\Scripts
Installing pycrust-script.py script to c:\python27\Scripts
Installing pycrust.exe script to c:\python27\Scripts
Installing wxdocs-script.py script to c:\python27\Scripts
Installing wxdocs.exe script to c:\python27\Scripts
Installing pywxrc-script.py script to c:\python27\Scripts
Installing pywxrc.exe script to c:\python27\Scripts
Installing img2xpm-script.py script to c:\python27\Scripts
Installing img2xpm.exe script to c:\python27\Scripts

Installed c:\python27\lib\site-packages\wxpython-4.0.1-py2.7-win-amd64.egg
Processing dependencies for wxPython==4.0.1
Searching for six
Reading https://pypi.python.org/simple/six/
Download error on https://pypi.python.org/simple/six/: [Errno 11004] getaddrinfo failed -- Some packages may not be found!
Couldn't find index page for 'six' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.python.org/simple/
Download error on https://pypi.python.org/simple/: [Errno 11004] getaddrinfo failed -- Some packages may not be found!
No local packages or working download links found for six
error: Could not find suitable distribution for Requirement.parse('six')

然后安装 six ,下载地址:https://pypi.org/project/six/#files 选择 six-1.11.0-py2.py3-none-any.whl ,一样拷贝到C:\Python27\Scripts下,使用pip安装:

PS C:\Python27\Scripts> .\easy_install-2.7.exe .\six-1.11.0-py2.py3-none-any.whl
Processing six-1.11.0-py2.py3-none-any.whl
c:\python27\lib\site-packages\setuptools\pep425tags.py:89: RuntimeWarning: Config variable 'Py_DEBUG' is unset, Python ABI tag may be incorrect
  warn=(impl == 'cp')):
c:\python27\lib\site-packages\setuptools\pep425tags.py:93: RuntimeWarning: Config variable 'WITH_PYMALLOC' is unset, Python ABI tag may be incorrect
  warn=(impl == 'cp')):
c:\python27\lib\site-packages\setuptools\pep425tags.py:99: RuntimeWarning: Config variable 'Py_UNICODE_SIZE' is unset, Python ABI tag may be incorrect
  sys.version_info < (3, 3))) \
Installing six-1.11.0-py2.py3-none-any.whl to c:\python27\lib\site-packages
Adding six 1.11.0 to easy-install.pth file

Installed c:\python27\lib\site-packages\six-1.11.0-py2.7.egg
Processing dependencies for six==1.11.0
Finished processing dependencies for six==1.11.0

此时再次使用easy_install安装wxpython即可:

PS C:\Python27\Scripts> .\easy_install-2.7.exe .\wxPython-4.0.1-cp27-cp27m-win_amd64.whl
Processing wxPython-4.0.1-cp27-cp27m-win_amd64.whl
c:\python27\lib\site-packages\setuptools\pep425tags.py:89: RuntimeWarning: Config variable 'Py_DEBUG' is unset, Python ABI tag may be incorrect
  warn=(impl == 'cp')):
c:\python27\lib\site-packages\setuptools\pep425tags.py:93: RuntimeWarning: Config variable 'WITH_PYMALLOC' is unset, Python ABI tag may be incorrect
  warn=(impl == 'cp')):
c:\python27\lib\site-packages\setuptools\pep425tags.py:99: RuntimeWarning: Config variable 'Py_UNICODE_SIZE' is unset, Python ABI tag may be incorrect
  sys.version_info < (3, 3))) \
removing 'c:\python27\lib\site-packages\wxPython-4.0.1-py2.7-win-amd64.egg' (and everything under it)
Installing wxPython-4.0.1-cp27-cp27m-win_amd64.whl to c:\python27\lib\site-packages
writing requirements to c:\python27\lib\site-packages\wxPython-4.0.1-py2.7-win-amd64.egg\EGG-INFO\requires.txt
wxPython 4.0.1 is already the active version in easy-install.pth
Installing wxdemo-script.py script to c:\python27\Scripts
Installing wxdemo.exe script to c:\python27\Scripts
Installing img2png-script.py script to c:\python27\Scripts
Installing img2png.exe script to c:\python27\Scripts
Installing pyslices-script.py script to c:\python27\Scripts
Installing pyslices.exe script to c:\python27\Scripts
Installing img2py-script.py script to c:\python27\Scripts
Installing img2py.exe script to c:\python27\Scripts
Installing pyslicesshell-script.py script to c:\python27\Scripts
Installing pyslicesshell.exe script to c:\python27\Scripts
Installing wxget-script.py script to c:\python27\Scripts
Installing wxget.exe script to c:\python27\Scripts
Installing helpviewer-script.py script to c:\python27\Scripts
Installing helpviewer.exe script to c:\python27\Scripts
Installing pyshell-script.py script to c:\python27\Scripts
Installing pyshell.exe script to c:\python27\Scripts
Installing pycrust-script.py script to c:\python27\Scripts
Installing pycrust.exe script to c:\python27\Scripts
Installing wxdocs-script.py script to c:\python27\Scripts
Installing wxdocs.exe script to c:\python27\Scripts
Installing pywxrc-script.py script to c:\python27\Scripts
Installing pywxrc.exe script to c:\python27\Scripts
Installing img2xpm-script.py script to c:\python27\Scripts
Installing img2xpm.exe script to c:\python27\Scripts

Installed c:\python27\lib\site-packages\wxpython-4.0.1-py2.7-win-amd64.egg
Processing dependencies for wxPython==4.0.1
Finished processing dependencies for wxPython==4.0.1

3、测试

安装过后测试一下,是否可以导入wx包:

PS C:\Python27\Scripts> py -2          
Python 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:30:26) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx

4、NOTE

本机安装有python2.7和3.6两个版本,使用py -2 和py -3分别指向2.7和3.6,在python脚本中使用:

#!/user/bin/env python2

#!/user/bin/env python3

分别指定即可。