python導入路徑
A. 如何將python的路徑加到path中
1、說明:
windows下設置python環境變數,就是把python的安裝目錄添加到系統path中。
2、步驟:
1)確定python安裝目錄,根據版本不同安裝目錄也不同,可以在開始菜單中的快捷方式中查看。在python快捷方式上點右鍵,屬性菜單
3、注意事項:
如果未出現python結果,則需要檢查路徑是否設置正確,並重新啟動一下計算機即可。
B. python怎麼引入別的路徑下的py模塊
import sys
sys.path.append('這里輸入模塊路徑')
比如我的模塊放在 c:/mole
我就寫sys.path.append('c:/mole')
然後就可以直接 import xx 了
C. 如何將模板文檔導入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 中就可以了,這樣導入就相當於可以從添加的相應路徑開始往下找模塊了。可以找到,結果也不會報錯。
D. 如何在linux環境下添加python模塊路徑
本人python菜鳥一枚,在學習python過程中,經常要按照教程編寫一些模塊和函數練手,剛開始只是在python shell中編寫,但是如果出錯就會非常悲劇,又要從頭開始編,而且重啟python後也要重新編寫模塊。所以希望能像bash編程那樣將腳本路徑添加到環境變數中,這樣修改起來也方便。以下內容均來源於網路及本菜鳥。
摘要:本文敘述了如何在linux環境下添加python模塊的路徑,第1部分介紹了如何查看python環境變數,第2部分介紹了如何將腳本放入python自帶的環境變數目錄中,第3部分介紹了如何將目錄放入python的環境變數中重啟python失效,第4部分介紹了如何為python添加永久環境變數目錄。這些方法可以使模塊的修改和重復使用更加方便,不用重復輸入。
1、首先,可以用python中的內建模塊sys來查看python的環境變數。
這些目錄都是python的環境變數。
2.接下來本菜鳥嘗試一下如果將提前寫好的python腳本放入這些目錄中,能不能在python中使用。別問為什麼跑題,本菜就想試一試^ -^。
選擇/usr/local/lib/python2.7/dist-packages/pip-7.1.2-py2.7.egg這個目錄,腳本名為my_mole.py,裡面只有一個名為c_to_f的函數,用來計算從攝氏溫度轉換為華氏溫度。
可以看到,腳本已經位於剛開始選定的的目錄下了。
我們現在來看看,在python中導入這個模塊。並按照「模塊.函數」的格式使用函數。
可以看到,導入模塊成功,其中的c_to_f函數也正確使用,10攝氏度=50華氏度。或者你在確定函數名不重名的前提下,可以from my_mole import c_to_f,這樣就可以直接使用函數c_to_f,而不需要模塊名作為前綴。
實驗成功,將腳本導入python自帶的環境變數目錄中是有效的,如果之前運行了python,再導入後並不用重啟python就可以導入模塊。
3.接下來我們回歸正題,如何自定義python環境變數目錄。最直接的想法是把目錄加到剛才的python環境變數中。可以使用sys.path.append('/.../....')。
然後再次查看path路徑,發現"/home/sh/python"目錄確實加入了。並且也可以使用。但是這種方法一旦退出python,剛才新加的目錄就消失了。
4.接下來介紹一種一勞永逸的方法,就是直接修改系統變數。
export PYTHONPATH=$PYTHONPATH:/..../..../,對,沒錯,直接在shell中敲這一行,目錄是你自定義的目錄,然後打開python,import my_mole,你就愉快的可以使用自定義的模塊了。
http://blog.sina.com.cn/s/blog_959cf80d0102vx3j.html
E. Python導入上一級/下一級/任一級目錄下的.py文件問題
有如下目錄:
即python文件夾下有file1, file2, pfile.py, data.py,文件夾file1下又有file1_1, pfile1.py, 文件夾file2下有pfile2.py,文件夾file1_1下又有pfile1_1.py。
在文件pfile.py中導入pfile1.py, pfile2.py或 pfile1_1.py,並使用其中的函數(假設函數名分別文fun1(), fun2(), fun1_1()):
需要注意的是,這種導入方式下,如果要用導入的文件中的函數或者類,需要在其前面加上文件名,即 "文件名.函數名" 的形式 。
有些教程裡面說,需要在下一級目錄下新建一個空的python文件命名為 __init__.py,但我在運行時發現不建一個文件也會導入成功。
如果要在pfile1.py中調用pfile.py 和 pfile2.py,因為當前路徑是 '/home/puxitong/python/file1/' ,而 pfile.py和pfile1.py在路徑'/home/puxitong/python/' 及其子路徑下,這里的思路是將上一級目錄 '/home/puxitong/python/' 添加在系統路徑中,可以直接訪問pfile.py,然後將pfile2.py 按照下一級路徑導入方式進行導入:
如果要在pfile1_1.py中導入pfile.py, pfile1.py, pfile2.py呢? 原理是一樣的,即將文件pfile.py所在路徑添加到系統路徑中,可直接導入pfile.py, 再按照下級文件導入方式導入pfile1.py和pfile2.py:
F. python怎麼導入庫包
Python庫的導入 import A 為最簡單的引入對應的包。
G. python import 路徑問題 新手
以下為純手打,下面給幾個demos:
說明:
moles所在的目錄在python里叫package, 下面是一個名為 IsDir的package(實際上就是一個目錄), package下面有4個moles(A, B, C, D)和一個__init__.py文件,目錄結構如下:
IsDir/
A.pyB.pyC.pyD.py__init__.py
大體來講,有兩種方法可以調用某目錄下(包括遞歸目錄)的moles.
一. __init__.py為空時
1.1以下為調用moleA的代碼:
#!/usr/bin/envpython
fromIsDirimportA
A.say()
輸出:
ThisismoleA!
1.2 如果想調用moleA,B,C,D呢?
方法1.
#!/usr/bin/envpython
fromIsDirimportA
fromIsDirimportB
fromIsDirimportC
fromIsDirimportD
A.say()
B.say()
C.say()
D.say()
方法2.
#!/usr/bin/envpython
importIsDir.A
importIsDir.B
importIsDir.C
importIsDir.D
fromIsDirimport*
A.say()
B.say()
C.say()
D.say()
錯誤示例1:
#!/usr/bin/envpython
importIsDir.A
A.say()
錯誤示例2:
#!/usr/bin/envpython
fromIsDirimport*
A.say()
錯誤的原因:
IsDir/目錄下__init__.py為空時,直接importIsDir.A或者fromIsDirimport*是無效的.
從官方文檔里可以看到,__init__.py 里沒有__all__=[mole1,mole2,...]時,
fromIsDirimport* 只能保證IsDir被imported, 所以此時IsDir里的moles是無法被imported,
此時只有如我上面所寫的代碼所示才能正確執行,否則是錯誤的。官方解釋為:importIsDir.A並無任何意義,只有接著執行fromIsDirimport*後,importIsDir.A語句里的moleA才會被定義,所以完整的調用因改為: 1. import IsDir.A 2. from IsDir import *。
二. __init__.py用all=[...]指定該package下可以被imported進去的mole
__init__.py里寫入如下內容:
%catIsDir/__init__.py
__all__=["A","B"]
然後使用之:
#!/usr/bin/envpython
fromIsDirimport*
A.say()
B.say()
結果:
%pythontest.py
ThisismoleA!
ThisismoleB!
錯誤實例:
#!/usr/bin/envpython
fromIsDirimport*
C.say()
以上示例之所以錯誤,是因為C並沒有在__all__=["A","B"]里制定,由此可見,packageIsDir下面的__init__.py里,__all__=[...]具有隔離moles的作用。
補充:
mole A, B, C,D里我分別只定義了一個method, 例如,以下為mole A的code:
%catIsDir/A.py
defsay():
print"ThisismoleA!"
後記:
謝謝這位同學,回答你的問題感覺很有收獲,順便又把python溫習了一遍。回頭把這些總結貼到我的blog上以上為手寫,望採納,共勉。
=============================================================
老子寫了這么多居然採用了另一個簡陋的答案,mlgb的,枉我熬夜給你答題。這種白痴樓主就不配在這里問問題。
H. python 怎樣添加模塊載入路徑
這里主要介紹第二種方法:通過.ph文件進行設置,好處是可以將路徑設為永久路徑
在Python的安裝目錄下,找到Libsite-packages文件夾,在該文件夾下新建一個以.pth為後綴名的文件,編輯文件,內容為要添加的庫路徑。(我的文件名命名為setpath.pth)。添加路徑示例:文件內容寫入要引用的庫路徑
步驟1:建立文件,可以首先建立一個文本文檔,寫下路徑如D:\Python\mulib。我這里新建的文件路徑的文件夾命名為「mulib」
步驟3:將保存好的文件放在Python的site-packages文件夾中就完成了。
I. mac上用python導入excel
mac上用python導入excel具體步驟。
1、引用第三方庫:進入python環境路徑下,使用終端進入該路徑。如找不到該路徑,可以直接復制pycharm中的python環境路徑,在finder搜索,會展示該路徑下的文件,右鍵退回上層文件夾,就能找到安裝路徑了。安裝pythonExcel庫中的xlwt/xlrd庫,用於寫入和讀取Excel文件。
2、在指定目錄下創建Excel文件。
3、在Excel中添加行或者列。命令行:sheet.write(行,列,value)。該位置的行與列,以0開始為第一行,第一列,如:sheet.write(0,0,序號),表示在Excel的第一行第一列寫下字元串:序號。
4、讀取Excel中的數據:讀取表格中某一行,某一列的數據。讀取表格中全部數據。
J. python 中庫怎麼導入
讓包內導入更加顯式,這個功能的一部分設計初衷是,為了幫助腳本解決同名文件出現在模塊搜索路徑上多個不同位置時的二義性。考慮包目錄,這定義了一個名為mypkg 的包,其中含有名為mypkg.main和mypkg.string 的模塊。現在,假設模塊main試圖導入名為string的模塊。在 Python 2.X和更早版本中,Python會先尋找mypkg目錄以執行相對導入。這會找到並導入位於該處的string.py文件,將其賦值給mypkg.main模塊命名空間內的名稱string。不過,這一導入的本意可能是要導入Python標准庫的string模塊。可惜的是,在這些Python版本中,無法直接忽略mypkg.string 去尋找位於模塊搜索路徑更右側的標准庫中的string模塊。此外,我們無法使用完整包導入路徑來解決這個問題,因為我們無法依賴在每台機器上的標准鏈接庫路徑。換句話說,包中的簡單導入可能具有二義性而且容易出錯。在包內,我們無法確定imports pam語句指的是包內的模塊還是包外的模塊。一種可能的後果是,一個局部的模塊或包會在不經意間隱藏了sys.path 上的另一個模塊。
在實踐中,Python使用者可以避免為他們自己的模塊重復使用標准庫模塊的名稱(如果需要標准string庫,就不要把新的模塊命名為string)。但是,一個包還是有可能意外地隱藏標准庫模塊。再者,Python 以後可能新增標准庫模塊,而其名稱可能剛好就和自己的一個模塊同名。而依賴於沒有點號開頭相對導入的程序代碼同樣也不容易理解,因為讀者可能對希望使用哪個模塊而感到困惑。所以我們最好能在代碼中顯式地指出導入的解析過程。