![](/img/trans.png)
[英]How do I set up VS Code for Python to correctly launch/debug individual files such that relative imports are respected?
[英]How Do I Set Up Python Imports Correctly and so I Don't have to manually download them?
我很難找到一個網站,該網站清楚地說明了如何正確導入python模塊。 我在名為~/Desktop/programming_feb_23_v
的目錄中有一個名為coffee_shop.py
的文件。
當我嘗試運行它時,我將從googlemaps包中收到python導入錯誤。 我直接下載了軟件包“ googlemaps-2.1.1.tar.gz”-解壓縮並將googlemaps目錄直接放置在scrape_google.py
程序所在的目錄(以及作為子目錄的所有其他目錄)中谷歌地圖-2.1.1)。
當我嘗試重新運行python時,出現“ requests”模塊未找到錯誤。 然后,我嘗試下載請求模塊,並將其與googlemaps的__init__.py
放在同一文件夾中。 似乎仍然認為我沒有請求文件,即使我有該目錄並且其中包含__init__.py
文件,在嘗試運行該文件時仍然有問題。
有更聰明的方法嗎? 我在閱讀有關Python路徑的信息,但仍不完全清楚這意味着什么。 作為參考,我已經打印了sys.path
。 我想知道是否有一種方法可以將所有python軟件包放在一個位置(一個lib?),而不必每次我要運行它們時都手動下載它們。
可行的問題:-如何設置導入,這樣我可以(1)運行此程序,並且(2)不必每次都手動下載它們?
其他說明=我正在運行python 2.7
編輯-嘗試安裝虛擬環境,盡管它說已安裝,但仍無法運行該程序。
編輯v2-
編輯v3:仍無法使GoogleMaps項目正常工作
EDIT v4:按照http://docs.python-guide.org/en/latest/dev/virtualenvs/中的說明從venv重新開始
我建議您一定要獲得virtualenv並在每個項目中使用它。 在ubuntu上,您可以輕松加載
sudo apt-get install python-virtualenv
不幸的是,這將為您提供一個過時的版本。 為了解決這個問題,您只需對其進行升級。
sudo pip install --update virtualenv pip setuptools
完成后,為您自己創建一個用於虛擬環境的文件夾。 我喜歡將我的代碼保存在~/Python
,這使我可以使用workon別名來激活虛擬環境。
因此,讓我們沿着上述步驟繼續進行下一步。
$ mkdir ~/Python
這為您創建了一個存儲所有虛擬環境的地方。 然后這些是您每次啟動新項目時將運行的命令
$ cd ~/Python
$ mkdir projectname
$ cd projectname
$ virtualenv .projectname
我喜歡將我的virtualenvs放在一個隱藏的文件夾中,因為我很少直接與它們互動。 現在您有了一個virtualenv,需要激活它才能使用它。 您每次使用virtualenv時都需要激活它。 (注意提示一旦激活后如何更改)
$ . .projectname/bin/activate
(.projectname) $ |
注意上面命令的語法有點奇怪。 的。 告訴bash讀取以下腳本,就像在命令提示符下鍵入該腳本一樣,如果您希望虛擬環境能夠正常工作,那么這非常重要。
現在,當您需要可導入的python包時,只需執行
(.projectname) $ pip install packagename
在您的代碼中,您可以執行
import packagename
沒有任何問題。 如果您需要workon別名的副本,請告訴我,我將在此處發布。
我認為您正在嘗試導入錯誤的內容。 這是我導入googlemaps時得到的。 特別注意googlemaps的情況
$ .foo/bin/activate
$ . .foo/bin/activate
(.foo)/tmp$ pip install googlemaps
Collecting googlemaps
Downloading googlemaps-2.1.1-py2-none-any.whl
Collecting requests (from googlemaps)
Downloading requests-2.5.2-py2.py3-none-any.whl (474kB)
100% |################################| 475kB 422kB/s
Installing collected packages: requests, googlemaps
Successfully installed googlemaps-2.1.1 requests-2.5.2
(.foo)/tmp$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import googlemaps
>>>
聽起來您的全局site-packages
文件夾不在路徑中。 此答案可以幫助您查看site-packages
位置,並可以在終端提示符下鍵入echo $PATH
來查看echo $PATH
中的內容。 如果它們不在您的路徑中,則可以通過搜索$PATH
變量以及如何在用戶主目錄中的.bashrc
, .bash_profile
或.profile
文件中進行設置/更新來解決此問題。
更好的方法是使用諸如virtualenv
以便您可以基於每個項目管理Python依賴關系,而不是與全局依賴關系不匹配(例如說需要一個項目的requests
版本和另一個項目的requests
版本)進行斗爭。一個單獨的項目...如果您嘗試管理全局程序包,可能會很麻煩。
安裝virtualenv
之后快速入門(不是唯一的方法):
virtualenv env
. env/bin/activate
. env/bin/activate
。 這將使您從全局python
切換到env/
安裝的python
pip install
依賴 deactivate
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.