本文目录一览:
python版本冲突,怎么解决
首先,python不存在多个版本冲突问题,不是非得一山不容二虎的情况,相反,python可以安装多个版本在同一电脑上,而且互不影响,但是偶尔有些小尴尬(你也可以理解为冲突,但并不是有一个版本就不能有另一个版本),比如终端界面运行python,和终端界面使用pip ,和默认哪个版本打开.py文件等,这个固然是个问题。
但是,从python3.6.x版本开始,这些所有问题都不是问题,在安装python3.6时就已经为你自动解决以上的问题,然后运行的时候上面说到的小尴尬稍微注意一下就行。
(我电脑上现在就有python2和python3两个版本,以我的电脑装好的作为参考)
注意1:
终端界面运行python,如果有多个版本,那么直接使用python,则会默认一个版本运行,而另一版本无法运行:
这里我的电脑默认的版本就是python3
要使用python2就这样:(python3也可以这样)
注意2:
使用pip安装第三方库,同样的,直接使用pip,会运行默认版本。
但是这样的话就可以切换到想要的版本:
或者:
注意3:
打开.py文件:
选中py文件,然后鼠标右键,就有两个不同版本让你选择了
这些都是python3.6.x版本开始自动搞定的,不需要设置注册表,改名啥的
4.Python中pip与Anaconda中的冲突
我们在安装Anaconda或者python的时候,都会将其添加进环境变量,这样计算机才能找到软件的位置,例如我们在cmd命令窗口输入python,计算机就能根据环境变量找到python.exe文件打开。
Script文件夹存放可执行的exe程序,其中pip.exe就位于该文件下,假设我们将两个应用的Script都添加进了环境变量,那么执行pip的时候就只会有一个起作用。
例如:我们在 cmd 命令窗口输入 pip freeze
这里需要用 pip.exe install pytorch 来安装 pytorch ,安装其他应用同理。
如何解决模块名称冲突(python)?
如果你有两个同名的模块,那么你只能导人它们中的一个——默认情况下,Python总是会选择在模块搜索路径sys.path中最左边的那一项。如果你偏爱的模块和顶层脚本在同一目录下,那就不成问题;由于顶层脚本的主目录总是模块搜索路径中的第一项,因此它的内容总是会首先被自动定位。然而对于跨目录的导入,模块搜索路径的线性本质意味着同名的文件会产生冲突。
要修复这一冲突,要么避免同名文件。如果你需要同时访问两个同名的文件,那么就要把两个源文件分别放入子目录中,这样包导入目录名称将使得模块引用唯一。只要外围的包目录名称是唯一的,你就能访问同名模块中的任意一个,或是全部的两个。
注意,如果你不小心为自己的模块使用了一个名称,而它碰巧和你需要使用的标准库模块的名称相同,那么也会出现这一问题。这是因为程序主目录(或是模块路径中靠前的另一个目录)下的本地模块会隐藏和替换标准库模块。
要修复这种覆盖,要么避免使用和你需要的另一模块相同的名称,要么把模块放到一个包目录下然后使用Python 3.X的包相对导入模型(包相对导入在2.X版本中是一个可选的功能)。在包相对导入模型下,普通导入会跳过包目录,因此你可以获取标准库版本,但在必要时特殊的点号开头导入语句仍然可以选取同名模块的本地版本。
原创文章,作者:XBRSH,如若转载,请注明出处:https://www.506064.com/n/313519.html