经过一周的各种折磨,如题。以下是我的经验和教训。
我的外网是win10 64位,内网环境win7 32位。由于未知原因,anaconda无法安装!!!
其实最靠谱的安装三方包的还是whl包。但是很有可能三方包能pip却找不到,而且找到也可能不兼容!!最恐怖的是有个包同样的版本通过3.7打包成whl只能3.7用,3.6打包whl只能3.6用。
第一步,安装一个与内网环境完全相同的python版本,以我为例,外网额外安装python3.6 32位(64位系统可以安装32位程序)。那怎么解决兼容问题呢?很简单将32位的改名,Python.exe和pythonw.exe改名。还是以我为例,我改成了python32.exe和pythonw32.exe。这样以后使用pip等python相关命令的时候,为了不混淆,不许在前面加上python -m 或python32 -m。以我为例:python -m pip install xxx;python32 -m pip install xxx。
这儿有个坑:我贪图方便,就把\scripts路径下的pip等相关命令也改名了,一开始很方便,但后来发生了不可描述的事情,我就不描述了。总之,麻烦一点点,不会吃亏。
第二步,找一个你认为合适的空白文件夹,按住shift,右键点击文件夹内,在此处打开cmd/powershell,以我为例:输入python32 -m pip install xxx。xxx是想安装的包。如果安装成功,并经过实验能够在该python环境中正常使用。ok,继续输入python32 -m pip download xxx。pip会把xxx以及依赖的所有包的tar.gz文件下载到该文件夹,顺便把whl也下载下来了。
坑:有时候whl包会少几个,需要手动将tar.gzd打包成whl。解压tar.gz,在该文件夹打开命令行,输入pyhton32 setup.py bdist_wheel,会生成dist文件夹,打开就能找到whl文件。依赖wheel包。如果缺少自己python32 -m pip install wheel。
第三步,将whl复制到内网中,按照依赖关系手动pip 安装。
tips:在命令行中可以用tab补全命令。针对whl非常长的文件名,可以通过先打几个字母,再通过tab补全。
tips:存在可以一键自动安装的方法,我上篇随笔就有,但是pip版本好像要低于10.0.0,而且很容易出问题。不如老老实实手动安装。反正也就是十来个包。
tips:只要外网内网python版本一样,外网安得上的包,内网一定可以。
0