導航:首頁 > 編程語言 > 導入磁碟中的模塊Python

導入磁碟中的模塊Python

發布時間:2022-11-08 05:42:14

Ⅰ 如何在python3中正確導入同一目錄下的模塊

因為要absolute_import,這樣import webchat_sdk.basic應該沒問題了。

在 Python 2 裡面可以使用 import foo來導入相同目錄包下的模塊foo,在 Python 3 裡面就是導入的項目根目錄(最上層有__init__.py的目錄)包foo。 也就是說 Python 3 默認就是絕對導入的,import .foo只是相對於絕對導入來說的,並不是相對導入。

Ⅱ 在python中如何導入兩個不同目錄下自定義的模塊呢

import sys
print sys.path

上面的代碼會給出所有可用的python路徑,你把.py文件放到這些路徑下面就可以在其他文件里導入它了。
另外一個特殊的路徑就是當前路徑,比如你在一個文件夾test下新建兩個.py文件,分別為123.py 和456.py ,那麼你可以在123.py寫:

import 456

就可以導入456.py了。

python的模塊都是.py文件,提示invaild syntax 是說語法錯誤。如果你用的是python3,那你的print就寫錯了。python2和3的print 區別如下。

print 'hello world' #python2
print('hello world') #python3

Ⅲ 如何將模板文檔導入python並創建

模板文檔導入python並創建的方法如下:

1.1 需要導入的模板在同一文件夾中

比如admin.py調用test.py模板,可以在admin.py中直接執行

因為python解釋器查找模塊時會找同一文件夾,所以不用導入路徑名。

1.2 需要導入的模板在當前文件夾的子文件夾中

比如 manage.py調用setting.py模板,可以在manage.py中直接執行

無需加其他路徑說明,因為 crm 也是一個模塊(模塊的集合)。

1.3 需要導入的模板在父文件夾中

比如admin.py想調用surround.py模板(在admin.py父文件夾project下),因為解釋器找模塊只會去本文件夾及本文件夾的子文件夾去找,不會去父文件夾找,為什麼?試試看,先在admin.py中執行

當一個的模塊被導入的時候,解釋器首先尋找具有該名稱的內置模塊。如果沒有找到,然後解釋器從 sys.path 變數給出的目錄列表裡尋找該模板。所以輸出結果可以看到是一個路徑列表,其它路徑不需要看,只看第一項

說明解釋器就是從 pro文件夾開始往下找,而surround.py是在 project/crm文件夾下,顯然是找不到的。解決方法,在admin.py中執行手動把相應的路徑添加到 sys.path 中就可以了,這樣導入就相當於可以從添加的相應路徑開始往下找模塊了。可以找到,結果也不會報錯。

Ⅳ python模塊i18n怎麼導入

Python通過gettext模塊支持國際化(i18n),可以實現程序的多語言界面的支持,下面是我的多語言支持實現:
1. 在python安裝目錄下的./Tools/i18n/(windows下例 D:\Program Files\Python25\Tools\i18n)目錄中找到pygettext.py運行之,生成翻譯文件模版messages.pot,內容大概是這個樣子:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2007-01-24 15:05+China Standard Time\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
"Generated-By: pygettext.py 1.5\n"

改之,charset=gb2312 Content-Transfer-Encoding: utf8如下:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2007-01-18 09:55+China Standard Time\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=gb2312\n"
"Content-Transfer-Encoding: utf8\n"
"Generated-By: pygettext.py 1.5\n"

那個msgid」 」 和msgstr」 「不要動
好,翻譯文件已經建立了,保存之,文件名改為lang.po.
2. 建立翻譯文件路徑,在主文件目錄下建立中文翻譯路徑 ./locale/cn/LC_MESSAGES/(windows下例D:\ python-prj\src\locale\cn\LC_MESSAGES,其中src目錄是源文件主目錄),英文翻譯路徑 ./locale/en/LC_MESSAGES/(windows下例D:\ python-prj\src\locale\en\LC_MESSAGES,其中src目錄是源文件主目錄)
3. 在主文件中引入gettext模塊:

# -*- coding: utf-8 -*-
#!/usr/bin/env python
import gettext
gettext.install('lang', './locale', unicode=False)
gettext.translation('lang', './locale', languages=['cn']).install(True)

第四行中lang是翻譯文件主名, ./locale是存放翻譯文件的路徑,第三個參數是是否使用unicode,第五行languages參數指定要使用的語言存放的子目錄,這里cn表示使用./locale/cn/LC_MESSAGES/路徑下的翻譯文件.
注意: # -*- coding: utf-8 -*- 一定要寫在前兩行,寫第三行都不會生效
4. 處理要翻譯的字元串,例:

print 「Hello world!」
print 「Python is a good Language.」

改之:

print _(「Hello world!」)
print _(「Python is a good Language.」)

5. 編寫並生成翻譯文件,打開步驟1中編輯過的lang.po文件添加翻譯文字,形成如下內容:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2007-01-18 09:55+China Standard Time\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=gb2312\n"
"Content-Transfer-Encoding: utf8\n"
"Generated-By: pygettext.py 1.5\n"

msgid " Hello world!"
msgstr "世界你好!"

msgid " Python is a good Language."
msgstr "Python 是門好語言."

保存之,運行./Tools/i18n/目錄下的msgfmt.py,Linux下命令為: python msgfmt.py lang.po(widows下的話,將lang.po文件拷貝到./Tools/i18n/目錄下,運行命令行窗口,到改目錄下鍵入:msgfmt.py lang.po),生成lang.mo,將該文件拷貝至./locale/cn/LC_MESSAGES/目錄下,將步驟1生成的lang.po文件直接生成lang.mo文件拷貝到./locale/en/LC_MESSAGES/目錄下,好了一切都准備好了,命令行下運行你的主文件,看看兩個print命令是不是輸出了世界你好! Python 是門好語言.,如果將主文件第五行languages參數置為en,則輸出是Hello world! Python is a good Language.,因為en目錄下lang.mo文件未做任何的翻譯,默認字元串不被替換.
上述實現的方法用在界面編程上可以實現中英文界面的切換,需要作個配置文件選擇中/英文;或者在主文件開始時先獲取操作系統本地語言然後根據獲取結果再設置中/英文,這樣就可以實現軟體語言自適應;如果想實現軟體語言在線切換,對於python來說就比較困難了,需要在軟體中加入界面刷新機制,不推薦,可以在切換中/英文設置後軟體下一次啟動生效(軟體如Ulipad).

Note:
.調用python安裝目錄的 Tools/i18n/pygettext.py抽取所需翻譯的模板
>>> pygettext.py path/to/yourfile.py
將生成一個名為messages.pot的文件
2.生成模板文件後,修改這個模板文件,其中的msgid為鍵值,對應你程序里寫的文本,如:_("New File"),而msgstr為翻譯後的值。還有就是注意修改文件頭部分Content-Type的charset為合適的編碼,比如utf8
3.編寫好模板後,把擴展名修改為.po,運行Tools/i18n/msgfmt.py,生成二進制的資源文件
>>> msgfmt.py messages.po
將生成一個名為messages.mo的文件
4.把這個mo文件放在正確的位置.
比如你在程序中是這樣寫的:
gettext.install('i18ntest', './locale', unicode=True)
gettext.translation('i18ntest', './locale', languages=['cn']).install(True)
那麼你的程序目錄下需要存在./local/cn/LC_MESSAGES/i18ntest.mo
這樣程序啟動時就會讀取這個資源文件,替換對應的文本,實現國際化了。
注意:如果使用utf格式保存,po文件不能有BOM頭。cn目錄是所對應的語言,LC_MESSAGES目錄是gettext.py里要求的,mo文件必須和所定義的域同名,見
gettext.py的mofile = os.path.join(localedir, lang, 'LC_MESSAGES', '%s.mo' % domain)

Ⅳ 怎麼用cmd 導入python中模塊,手動導入

成功安裝第三方模塊的前提:

確保以上沒有問題後,打開cmd窗口,直接輸入 pip install xxx(需要導入的模塊名稱),回車等待自動下載安裝即可。

Ⅵ 如何導入python中的模塊

定義模塊,只要使用文本編輯器,把一些python代碼輸入到文本中,然後以.py為後綴名進行保存,任何此類文件都會被認為是python模塊。
比如說,下面的代碼輸入到一個文件中,就可以看作是一個模塊:
def
printme(var):
print
varif
__name__
==
'__main__':
printme(1)
假設說輸入到a.py中,那麼import
a就可以把這個模塊導入。
然後可執行a.printme(3),屏幕即可列印出3:
>>>
a.printme(3)3>>>
一個模塊頂層定義的變數,會自動變成模塊的屬性。例如:
data=[1,2,3]def
printme(var):
print
varif
__name__
==
'__main__':
printme(1)
data變數就是模塊的一個屬性。其實printme也是一個屬性,只不過是一個函數罷了。
引入模塊示例如下:(假定此時data=[1,2,3]未定義)
>>>
import
a>>>
a.data
Traceback
(most
recent
call
last):
File
"<pyshell#1>",
line
1,
in
<mole>
a.dataAttributeError:
'mole'
object
has
no
attribute
'data'>>>
reload(a)<mole
'a'
from
'C:/py\a.pyc'>>>>
a.data
Traceback
(most
recent
call
last):
File
"<pyshell#3>",
line
1,
in
<mole>
a.dataAttributeError:
'mole'
object
has
no
attribute
'data'>>>
從上述提示可以看出data屬性未定義,此時再在a.py文件中定義data=[1,2,3],重新載入a模塊,並輸出data屬性:
>>>
reload(a)<mole
'a'
from
'C:/py\a.py'>>>>
a.data[1,
2,
3]>>>
這里的reload函數可以重新載入一個模塊。如果在模塊代碼中更改了,那麼需要重新載入。
上面a.data,就是訪問模塊中的屬性。
上面的例子是導入一個文件作為一個模塊。
其實python的模塊導入還有更豐富的內容。
除了模塊名之外,python也可以導入指定目錄路徑。python代碼的目錄就稱為包。因此,這類導入就稱為包導入。事實上,包導入是把計算機上的目錄變成python的一個命名空間。而屬性就是目錄中包含的子目錄或者是模塊文件。
看下面例子:
在我的桌面上有一個aa文件夾,裡面有bb文件夾,bb裡面有a.py這個文件。
那麼在aa和bb文件夾中分別放置一個__init__.py,之後,在命令行中import
aa.bb.a,就可以導入模塊a了。

閱讀全文

與導入磁碟中的模塊Python相關的資料

熱點內容
簡訊刪除助手文件夾 瀏覽:686
java辦公自動化 瀏覽:340
php中超鏈接 瀏覽:253
linux默認路由設置 瀏覽:36
linux如何掛載iso 瀏覽:432
vs程序換文件夾後不能編譯 瀏覽:557
安卓源碼編譯輸入腳本沒反應 瀏覽:47
phpmysql自增 瀏覽:167
把ppt保存為pdf 瀏覽:533
汽車密封件加密配件 瀏覽:887
黑馬程序員15天基礎班 瀏覽:560
java調整格式 瀏覽:521
香港雲伺服器租用價 瀏覽:78
linuxsublime3 瀏覽:560
imac混合硬碟命令 瀏覽:277
沈陽用什麼app租房車 瀏覽:857
00後高中生都用什麼app 瀏覽:238
戴爾塔式伺服器怎麼打開獨立顯卡 瀏覽:807
醫療程序員招聘 瀏覽:598
住宿app可砍價是什麼意思 瀏覽:133