首页 » 信息技术 »

Python文件名不能与模块名冲突

2019年2月21日 / 33次阅读
Python

在写Python代码的时候,.py文件的名称命名有个坑要注意,不要跟系统模块名冲突,否则可能会出现import了错误的模块的情况,而且还没有错误提示。

现在针对这个问题,做个小测验。

我的测试系统中,安装了cv2(opencv的python版)模块。

写一个cv2.py文件,里面就一句话print("i'm also cv2!"):

(cv) [xinlin@localhost cv]$ cat cv2.py
print("i'm also cv2!")

这样在import的时候就能看到打印,然后运行python,import cv2。

下面是测试过程:

(cv) [xinlin@localhost cv]$ mv cv2.py tt.py
(cv) [xinlin@localhost cv]$ ll
total 48
-rw-rw-r--. 1 xinlin xinlin 28845 Feb 21 12:49 obama.jpg
-rw-rw-r--. 1 xinlin xinlin   176 Feb 21 12:42 Pipfile
-rw-rw-r--. 1 xinlin xinlin    23 Feb 21 13:48 sys.py
-rw-rw-r--. 1 xinlin xinlin   110 Feb 21 12:49 test.py
-rw-rw-r--. 1 xinlin xinlin    23 Feb 21 13:49 tt.py
(cv) [xinlin@localhost cv]$ python
Python 3.7.1 (default, Oct 30 2018, 20:38:04)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.0.0'
>>> exit()
(cv) [xinlin@localhost cv]$ mv tt.py cv2.py
(cv) [xinlin@localhost cv]$ python
Python 3.7.1 (default, Oct 30 2018, 20:38:04)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
i'm also cv2!
>>>

测试过程中,我先将自己写的cv2.py修改为tt.py,然后进入python做import cv2,一切OK;然后再将tt.py修改为cv2.py;第二次import cv2的时候,就看到打印了,说明这时import了错误的模块。

所以,我们在编写Python代码的时候,一定要有一个意识,文件命名不要跟系统已经安装的模块冲突。

本文链接:https://www.maixj.net/ict/wenjianming-20252

相关文章

留言区


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top