2015-02-24 41 views
0

我很難找到一個網站,清楚地解釋如何導入python模塊沒有錯誤。我在名爲~/Desktop/programming_feb_23_v的目錄中有一個名爲coffee_shop.py的文件。如何設置Python正確導入,所以我不必手動下載它們?

當我試圖運行它,我會從googlemaps包得到python導入錯誤。我直接下載了包「googlemaps-2.1.1.tar.gz」 - 我將它解壓縮並將googlemaps目錄直接放在與scrape_google.py程序相同的目錄中(以及所有其他目錄作爲googlemaps的子目錄 - 2.1.1)。

enter image description here

當我試圖重新運行蟒蛇,我得到了「請求」模塊找不到錯誤。然後,我嘗試下載請求模塊,並將其放在與google地圖__init__.py相同的文件夾中。它似乎仍然認爲我沒有請求文件,即使我有那個目錄,它裏面有一個__init__.py文件,但在嘗試運行文件時仍然有問題。

enter image description here

有沒有一種更聰明的辦法做到這一點?我正在閱讀有關Python的路徑,但仍不完全確定這意味着什麼。作爲參考,我已經打印了我的sys.path。我想知道是否有一種方法可以將所有的python包放在一個地方(一個lib?),而不必每次我想運行它們時都要手動下載包。

enter image description here

採取行動的問題: - 如何設置我的進口,所以我可以(1)運行此程序,以及(2)不必每次都手動下載?

其他注意事項=我運行的Python 2.7

編輯 - 嘗試安裝一個虛擬env和仍然無法得到的程序運行,即使它說,它的安裝。

enter image description here

編輯V2 -

enter image description here

enter image description here

編輯V3:還是遇到了麻煩的GoogleMaps項目工作

enter image description here

編輯V4:從頭開始使用下列方向上VENV從http://docs.python-guide.org/en/latest/dev/virtualenvs/

enter image description here

+3

使用pip有什麼問題? – 2015-02-24 03:29:23

+1

請不要發佈文字圖片:只需將文字本身粘貼到代碼或報價塊中即可。你是否運行這些軟件包附帶的[setup.py scripts](https://docs.python.org/2/install/)?更聰明的做法是使用[pip](https://pypi.python.org/pypi/pip)。 – 2015-02-24 03:43:28

+0

這是否解決了您的問題?如果是這樣,不要忘記接受其中的一個答案,所以這個問題不會「沒有答案」。 – boatcoder 2015-02-26 23:18:52

回答

0

這聽起來像您的全球site-packages文件夾不是您的路徑上。 This answer可以幫助您查看site-packages的位置,您可以通過在終端提示符處鍵入echo $PATH來查看路徑上的內容。如果他們不在你的路上,可以通過搜索變量以及如何在用戶主目錄中的.bashrc,.bash_profile.profile文件中設置/更新它來解決此問題。

一個更好的辦法來做到這一點是與全球相關性不匹配,如果說使用類似virtualenv,這樣就可以在每個項目的基礎上管理你的Python的依賴,而不是摔跤,你需要的requests一個版本,一個項目另一個版本用於單獨的項目......如果您嘗試管理全局包,可能會變得毛骨悚然。

快速入門(不這樣做的唯一途徑)安裝virtualenv後:

  1. 從項目的目錄型virtualenv env
  2. . env/bin/activate。這將切換您從全球python到一個安裝在env/
  3. pip install依賴
  4. 當你完成或要切換到另一個項目,只需鍵入deactivate
  5. 確保你重複號2,當你來到回到那個項目上工作
+0

太棒了!我開始了虛擬env。我使用pip安裝谷歌地圖和請求,但仍然出現導入錯誤(請參閱我剛剛附加的圖片) – 2015-02-24 03:47:13

+0

(.googlemaps_project)edohring-mbp:googlemaps_project edohring $ from googlemaps導入GoogleMaps from:無法讀取/ var/mail/googlemaps – 2015-02-24 04:02:17

1

我打算建議你一定得到virtualenv並在每個項目中使用它。在Ubuntu上,你可以很容易地

sudo apt-get install python-virtualenv 

加載此這不幸的是給你一個版本是略顯過時。爲了解決這個問題,你只需要升級它。

sudo pip install --update virtualenv pip setuptools 

一旦完成,爲虛擬環境創建一個文件夾。我喜歡保持我的~/Python,這使我可以使用我的工作別名來激活虛擬環境。

讓我們走過上面的步驟之後的下一步。

$ 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 

沒有任何問題。如果你想要一個工作別名的副本,讓我知道,我會在這裏發佈。

我認爲你試圖導入錯誤的東西。這是我導入Google地圖時得到的結果。要特別注意谷歌地圖的情況

$ .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 
>>> 
+0

嗯,按照你的指示後,我試着創建一個新的文件夾〜/ Python。我想我成功地設置了一個虛擬env和導入的googlemaps。謝天謝地,我不再收到「無法導入請求」錯誤,但是,我收到一條錯誤消息,說「無法找到GoogleMaps」。任何想法,爲什麼這可能是? – 2015-02-24 03:59:50

+0

(.googlemaps_project)edohring -mbp:googlemaps_project edohring $ from googlemaps導入Google地圖 from:無法讀取/ var/mail/googlemaps – 2015-02-24 04:02:58

+0

您是如何安裝Google地圖的? '''pip安裝googlemaps'''你在venv被激活的情況下安裝了嗎 – boatcoder 2015-02-24 04:26:16

相關問題