解决python开发中模块冲突的具体方法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决python开发中模块冲突的具体方法?相关的知识,希望对你有一定的参考价值。
假如有两个同名的模块,那么只能导入它们中的一个——默认情况下,Python总是会选择在模块搜索路径sys.path中最左边的那一项。如果你偏爱的模块和顶层脚本在同一目录下,那就不成问题;由于顶层脚本的主目录总是模块搜索路径中的第一项,因此它的内容总是会首先被自动定位。然而对于跨目录的导入,模块搜索路径的线性本质意味着同名的文件会产生冲突。要修复这一冲突,要么避免同名文件。如果你需要同时访问两个同名的文件,那么就要把两个源文件分别放入子目录中,这样包导入目录名称将使得模块引用唯一。只要外围的包目录名称是唯一的,你就能访问同名模块中的任意一个,或是全部的两个。注意,如果你不小心为自己的模块使用了一个名称,而它碰巧和你需要使用的标准库模块的名称相同,那么也会出现这一问题。这是因为程序主目录(或是模块路径中靠前的另一个目录)下的本地模块会隐藏和替换标准库模块。要修复这种覆盖,要么避免使用和你需要的另一模块相同的名称,要么把模块放到一个包目录下然后使用Python 3.X的包相对导入模型(包相对导入在2.X版本中是一个可选的功能)。在包相对导入模型下,普通导入会跳过包目录,因此你可以获取标准库版本,但在必要时特殊的点号开头导入语句仍然可以选取同名模块的本地版本。 参考技术A 只要手动卸载掉apt-get里对应的过时的软件包即可。
以上是关于解决python开发中模块冲突的具体方法?的主要内容,如果未能解决你的问题,请参考以下文章
解决python3与python2的pip命令冲突问题冲突(window版)