Aengus 的技术小筑

Aengus | Blog

使用 Python 问题汇总

924
2019-03-20

导入第三方模块使用时出现“DLL load failed...”

这种情况出现在我用Anaconda管理第三方模块的时候。在网上找了很长时间也没有解决方法,大部分都是用pip命令直接安装出现的错误,在经过长时间的挣扎后最终还是放弃了用Anaconda,转而直接用pip命令安装后可以正常使用。

Anaconda是一款第三方python模块管理工具,安装后就相当于安装了几十个第三方常用模块如numpy、pillow等,而且Anaconda会自带python并将其安装在自己的路径下,所以也不用担心与自己安装的冲突。在安装Anaconda时会有选项问你是否添加到环境变量中,上面显示的是不推荐但是后来出现问题后网上的提示是将Anaconda添加到环境变量中,此方法我试过在我这没用但是不确保一定没有作用

在来说一下我的解决方案,直接运用命令行,在其中输入

pip install [模块名] //模块名可以在https://pypi.org中查询到

再将pycharm中的Python Interpreter修改为自己安装的Python即可(这是因为在前面用Anaconda时将其设置为了Anaconda自带的Python)。Python Interpreter的设置在Settings里面。

修改pip安装第三方模块的安装位置

首先我们打开命令行输入python -m site可以看到以下输出:

sys.path = [
    'C:\\Users\\Aengus',                            
    'E:\\Software\\Python\\Python3.7.2x64\\python37.zip',
    'E:\\Software\\Python\\Python3.7.2x64\\DLLs',
    'E:\\Software\\Python\\Python3.7.2x64\\lib',
    'E:\\Software\\Python\\Python3.7.2x64',
    'E:\\Software\\Python\\Python3.7.2x64\\Lib\\site-packages',
]
USER_BASE: 'C:\\Program File(x86)\\Python\\Scripts' (doesn't exists)  
USER_SITE: 'C:\\Program File(x86)\\Python\\Lib\\site-packages' (doesn't exists)
ENABLE_USER_SITE: True

我们需要注意的是USER_BASEUSER_SITE这两行,它们是模块的安装位置,我们找到我们现在用的Python版本(可以是自己安装的也可以是Anaconda自带的)的安装位置,找到Lib文件夹下的site.py文件,编辑其中USER_BASEUSER_SITE两个参数的内容即你要选择的第三方模块安装路径。推荐USER_BASE在“你选择的路径/Scripts”文件夹而USER_SITE在“你选择的路径/Lib/site-packages”文件夹。

如果不知道所用的Python安装位置,可以用

python -m site -help

输出的第一行即需要修改的site.py文件的位置。

另外说一句,在安装Anaconda时,除了有一个添加到系统环境变量的选项外,还有一个选项时指定为系统默认的Python版本(?),如果勾选这个选项的话那么需要修改的很有可能是Anaconda自带的Python。

修改pip安装源

如果只是安装某个模块用,可以直接用-i指令,比如安装numpy,采用清华源:

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/

如果想要修改默认设置,需要在C:/Users/用户名/pip文件夹下(如果没有pip文件夹就新建一个),新建pip.ini文件,内容如下:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple   //指定源

[install]
trusted-host=pypi.tuna.tsinghua.edu.cn

保存即可,目前国内源有以下几个:

http://pypi.douban.com/ 豆瓣
http://pypi.hustunique.com/ 华中理工大学
http://pypi.sdutlinux.org/ 山东理工大学
http://pypi.mirrors.ustc.edu.cn/ 中国科学技术大学
http://mirrors.aliyun.com/pypi/simple/ 阿里云
https://pypi.tuna.tsinghua.edu.cn/simple/ 清华大学

参考链接

https://www.jianshu.com/p/3621780417be
https://blog.csdn.net/C_chuxin/article/details/82962797

(本博客创建于2019-01-26)