2013-07-18 32 views
0

我對Python有些新鮮,做了幾個腳本,但沒有太多嚴肅的程序。我正在嘗試理解我寫入的函數/腳本(以及將來創建的任何模塊)的位置,以便其他程序可以訪問它們。我在主題(herehere)上找到了兩個不同的Python幫助頁面,它們最終似乎表明文件需要位於文件夾中(或者可能是某個子文件夾,我無法理解該術語),該文件包含Python可執行文件或在當前目錄中。從我所知道的情況來看,默認的當前目錄是通過PYTHONPATH環境變量設置的。但是,如下面的截圖所示設置PYTHONPATH後。 。 。Python中的文件管理

Setting PYTHONPATH System Variable

我打開了一個新的Python外殼和檢查,看看當前目錄了。以下是生成的輸出。

>>> import os 
>>> os.getcwd() 
'C:\\Program Files\\Python33' 
>>> 

可能有人請解釋什麼,我做錯了,我怎麼可以把它(如果這樣的事情是可能的),使我有機會獲得任何給定的劇本我寫了,我已經把一些特定的文件夾我選擇指定我的主要工作目錄(或此目錄的某個子文件夾)?我不想從C:/Program Files/Python33目錄中工作。

如果需要更多信息,我會很樂意提供。請讓我知道。

+0

'PYTHONPATH'是在Python解釋器會查找它在當前目錄中找不到的模塊。爲了啓動shell,你可以將啓動腳本的路徑放到一個名爲'PYTHONSTARTUP'的env var中,這個變量在啓動Python shell時將被執行。你應該能夠讓這個腳本提示你當前的工作目錄應該變成什麼,或者可以有一些單獨的步驟,你可以o設置每次啓動保存在某處然後由自定義啓動腳本使用的shell的目錄。 – martineau

回答

1

你似乎已經打開python的交互模式。我不是100%肯定的,但我實際上在我的手指上下注cwd,並且* NIXes默認設置爲解釋器被調用的目錄。

所以問題是你是如何打開你的python shell?可能從C:\Program Files\Python33或使用一些IDE開始,cwd是python二進制文件駐留的實際目錄。

你可以隨時隨地放置你的文件,並從那裏工作。但是,您必須相應地調整cwd。以任何方式。通常IDE提供一些項目選項來手動設置cwd。您可以從某個基本目錄運行腳本。例如。

cd D: 
cd D:\my_python_dir\ 
python test.py 

應該工作。也不要給test.py作爲第二個參數應該啓動交互式shell,os.getcwd()應該給D:/my_python_dir或等效的結果。

最後,如果您使用的是交互式shell,則可以使用其他os函數os.chdir(path)

+0

僅供參考:'cd'不對C驅動器以外的驅動器進行更改。要做到這一點,只需輸入'D:'。一旦進入該驅動器,「cd」按預期工作。 – tlewis3348

+0

一旦我處於Python的交互模式,我將如何執行我的一個腳本?用你的例子,我將如何在Python的交互模式中執行'test.py'? – tlewis3348

0

我認爲你在搞這兩件事。

PYTHONPATH模塊文件的默認搜索路徑。你可以閱讀Environment variables。它沒有定義你的工作目錄。

and os.getcwd返回一個字符串,表示當前工作目錄。它是打開shell的目錄。例如,如果我打開/home/hugh中的shell,它將返回/home/hugh/。如果您想更改當前的工作目錄,可以使用os.chdir

如果您想訪問您編寫的模塊,可以將它們放在當前工作目錄或PYTHONPATH中。如果他們在PYTHONPATH,它與你的工作目錄無關。你可以閱讀更多關於module search path

1

你沒有做錯任何事。當前工作目錄C:/Program Files/Python33和您的設置PYTHONPATH=D:/Google Drive/Python是兩個不同的東西。

根據您當前的配置,你可以把easyly模塊(*.py文件)和包(文件夾與文件__init__.py)內D:/Google Drive/Python,然後將它們導入任何腳本不管從正在運行它。

例如,假設您已將模塊mytest.py放入D:/Google Drive/Python的內部。現在,您可以創建腳本D:/workspace/test.py(無論你在哪裏創建它)

import mytest 

print(mytest.__file__) 

D:/workspace/python test.py運行將打印D:/Google Drive/Python/mytest.pyD:\\Google Drive\\Python\\mytest.py(手頭沒有窗戶:()。