檔名不能與標準庫的名稱一樣

2021-09-01 19:17:48 字數 916 閱讀 4341

今天寫了個發郵件的指令碼,名字叫email.py

執行的時候報

traceback (most recent call last):

file "", line 1521, in _find_and_load_unlocked

attributeerror: 'module' object has no attribute '__path__'

during handling of the above exception, another exception occurred:

traceback (most recent call last):

file "./email.py", line 4, in

import smtplib

file "/usr/local/python3/lib/python3.3/smtplib.py", line 47, in

import email.utils

file "/root/study/python/email.py", line 5, in

from email.mime.text import mimetext

importerror: no module named 'email.mime'; email is not a package

竟然還出現了乙個目錄 __pycache__,

百思不得其解,還以為是公升級python3的時候出問題了,通過網上查詢,

smtplib.py中import email.utils這一句,又說email.py中無mime.text。可以推斷是檔名與標準庫名衝突

解決:

將email.py改為別的名字,解決

修改檔名稱或者替換檔名中的內容

import osdef putname path,flag,oldname,newname 修改檔名稱或者替換檔名中的內容 dirlist os.listdir path for i in dirlist if i.startswith continue newpath os.path.join ...

解析 Boost 庫的檔名

boost 庫編譯的 lib 檔案按下面的規則組合檔名 boost lib prefix boost lib name boost lib toolset boost lib thread opt boost lib rt opt boost lib version 這些定義為 boost lib ...

解析 Boost 庫的檔名

boost 庫編譯的 lib 檔案按下面的規則組合檔名 boost lib prefix boost lib name boost lib toolset boost lib thread opt boost lib rt opt boost lib version 這些定義為 boost lib ...