今天使用anaconda时碰到了一个问题
缺少torchtext这个包
然后直接pip install torchtext,安装完成,再次运行还是没有torchtext,重新安装,显示已经装在原有的python里(我电脑上原本安装了一个python3.6,随后又安装了anaconda)
我使用的是anaconda prompt的base环境python3.7,直接输入python,发现也是进入原有的python3.6
百度得知anaconda3的环境变量提到最高层次就可以进入anaconda3的python中。
修改后可进入anaconda3的python3.7,但是pip install还是安装在原有python3.6内
在网上找了半天资源也没找到怎么更换默认使用的pip(总是找到将pip换成国内镜像源)
最后只能把原有的python重命名为python3.6,anaconda中重命名为python3.7,之后所有的pip都要python3.7 -m pip install XXXX,也算是个权宜之计吧
改了之后发现很多其他问题,jupyter notebook都打不开了....应该是很多关联文件是关联python.exe,改成python3.7后就不行了
随后又改回原名,心血来潮试了一下python -m pip install XXX 居然就安装在anaconda中了,联想到之前说把anaconda3中的python环境变量设到最高层次,说明python -m时调用的还是环境变量中最高层次的python。于是上网搜索了一下python -m的作用。
引用如下
[python]自问自答:python -m参数?www.cnblogs.com简而言之,举个例子
#run.py
import sys
print(sys.path)
python
python
区别在于第一个输出的不同
有什么影响呢?
# 目录结构如下
package/
__init__.py
mod1.py
package2/
__init__.py
run.py
# run.py 内容如下
import sys
from package import mod1
print(sys.path)
# 直接启动(失败)
➜ test_import_project git:(master) ✗ python package2/run.py
Traceback (most recent call last):
File "package2/run.py", line 2, in <module>
from package import mod1
ImportError: No module named package
# 以模块方式启动(成功)
➜ test_import_project git:(master) ✗ python -m package2.run
['',
'/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
...]
联想到之前在服务器上跑代码的时候也报过好几次类似的错误,当时百思不解,只好反复修改import路径,现在明白个大概了。
综上,以后要在anaconda base中安装,就要python -m pip install了(话说我是不是应该把原有的python3.6卸载了更方便2333