windows环境的python踩坑记
虽然使用python有不少时间了,但是基本没有在windows环境下使用,这不就踩了不少坑,特此记录如下:
安装完成居然没有pip 命令:
安装完成后,发现没有python命令,这个是环境变量的问题,添加就可以了。但是也找不到pip 命令,而进入python里面,可以import pip 模块。这时候,需要用“python -m ensurepip ” 来生成pip命令了,生成之后添加到环境变量就可以直接使用了, 默认情况下pip的路径: Python_install_pathscriptspip.exe , 在较新的python版本里面,已经默认会生成pip 命令,也就是说不需要上述步骤就有pip 命令可以使用了.需要注意的是: 如果遇到执行pip.exe 时候报错: Fatal error in launcher: Unable to create process using '"' , 那么可以尝试用: python FULL/PATH/OF/PIP/COMMAND 来替带直接运行 pip, 貌似是无法找到合适的解释器来运行pip造成的.
没有足够的权限安装python module:
如果发现系统中已经安装了python,但是缺少需要的module, 需要自己安装,可是不是管理员权限,没办法安装,python 提供了解决办法,方法如下: A. 使用python -m site 命令,该命令会输出python的sys.path变量的值,以及其他的变量,见如下内容,其中我们可以看到有两个变量:USER_BASE, USER_SITE. 我们可以把需要的module 安装到USER_SITE下. 如果不存在相应的路径,那么我们可以创建.
C:UsersXXXXX>python -m site
sys.path = [
'C:\Users\XXXXX',
'C:\Python36-32\python36.zip',
'C:\Python36-32\DLLs',
'C:\Python36-32\lib',
'C:\Python36-32',
'C:\Users\XXXXX\AppData\Roaming\Python\Python36\site-packages',
'C:\Python36-32\lib\site-packages',
'C:\Python36-32\lib\site-packages\win32',
'C:\Python36-32\lib\site-packages\win32\lib',
'C:\Python36-32\lib\site-packages\Pythonwin',
]
USER_BASE: 'C:\Users\XXXXX\AppData\Roaming\Python' (exists)
USER_SITE: 'C:\Users\XXXXX\AppData\Roaming\Python\Python36\site-packag
es' (exists)
ENABLE_USER_SITE: True
B. 有了上述的路径后,我们在安装3rd module 的时候,就可以指定安装路径了: pip install MODULE_FILE.PY --target=ABOVEUSER_SITEPATH 上述方式安装之后,只有当前用户可以使用这些新装的module, 其他用户是不可以的.
发现有安装的module不能成功import :
其实这个不能算windows平台的坑了,一般不能import 都是缺少依赖的问题。 那么我们可以返回pip 命令,首先要知道这个module 的路径,通过路径中其他的信息确认这个module所属的package.
- 用pip list 列出系统中已经安装的包,通过上述信息的比对,确认具体所属于的package.
- 用pip check PACKAGE_NAME , 会提示缺少/损坏的package.
- 用pip uninstall PACKAGE_NAME 来卸载有问题的package, 如果只是缺少依赖,那么无需卸载.
- 用pip install PACKAGE_NAME 来安装缺少的包,或者 遭到损坏的package.
- 如果没有internet, 那么是无法用pip install 的,这时候可以包 package 下载下来,然后用pip install LOCAL_PACKAGE_PATH 来解决,注意的是,如果用这种方式,那么必须要把需要的所有包都下载下来哦.
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- R语言ggmap空间可视化机动车碰撞–街道地图热力图
- R语言ggmap空间可视化机动车交通事故地图
- 基于matlab的Lorenz系统仿真可视化
- 使用R语言对进行空间数据可视化
- R语言中基于混合数据抽样(MIDAS)回归的HAR-RV模型预测GDP增长
- R语言马尔可夫体制转换模型Markov regime switching
- Python中的ARIMA模型、SARIMA模型和SARIMAX模型对时间序列预测
- python3用ARIMA模型进行时间序列预测
- R语言马尔可夫转换模型研究交通伤亡人数事故预测
- scrapy爬虫框架和selenium的使用:对优惠券推荐网站数据LDA文本挖掘
- 使用R语言进行Metroplis-in-Gibbs采样和MCMC运行分析
- R语言中的马尔科夫机制转换(Markov regime switching)模型
- R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
- nginx快速入门
- R语言中进行期权定价的Heston模型