2017-06-07 29 views
0

我想了解PyDev不喜歡什麼。我在Ubuntu下,似乎PyDev沒有看到像bash那樣的庫。 我有兩個庫,sqlite3和peewee的問題。如果我在shell上運行我的程序,一切都很好;如果我在新安裝的PyDev打開它,我看到一對夫婦指令的強調與消息PyDev - 未解析的導入只在IDE上,仍在運行

未解決進口:sqlite3的

而且

進口未定義的變量:得到

第一個錯誤來自以下代碼:

from pprint import pprint 
import sqlite3 
from bs4 import BeautifulSoup 
import codecs 
from database import Tbrecipe 
from datetime import datetime 
import logging 

def main(): 
    logger = logging.getLogger('peewee') 
    logger.setLevel(logging.DEBUG) 
    logger.addHandler(logging.StreamHandler()) 
    CONN = sqlite3.connect('ent.db') 

導入錯誤發生在..導入。第二行。發生這種情況是因爲我親自將/usr/lib/python2.7/sqlite3添加到pydev的python解釋器的python路徑中。如果我刪除它,錯誤是在「sqlite3.connect」。我想連接沒有在該目錄上定義。我沒有找到它。

Peewee還有其他問題。我爲我的數據庫的表創建了一個對象類。一切都好,直到我嘗試使用從peewee繼承的一些方法。

我database.py看起來是這樣的:

從peewee進口* 數據庫= MySQLDatabase( '測試',** { '主機': 'localhost' 的, '密碼': 'RT',「用戶 ': 'RT',' 字符集 ':' utf8mb4' })

類UnknownField(對象): DEF 初始化(個體,* _ ** _):通過

類BaseModel(型號): class Meta: database = database

類Tbitem(BaseModel): 源= IntegerField() 名= CharField(空=真)

我main.py

... 
from database import Tbitem 
item = Tbitem.get(Tbitem.id==id_item) 

都 「得到」 和「Tbitem.id 「都強調了紅色與錯誤

進口未定義的變量:獲得

我可以繼續工作,因爲什麼也沒有發生,或者我可以回到vim或vscode(慢調試器),但我更喜歡使用這個,因爲我習慣了eclipse,並且我喜歡pydev的想法。我該怎麼辦?我在shell上檢查pythonpath,看起來是一樣的,除了不再存在的目錄外。

我在pydev的FAQ上看過它不喜歡softlinks。我應該刪除所有的軟鏈接嗎? peewee不是softlinked和sqlite3我甚至不知道它在哪裏完成。

任何有類似問題和解決方案的人?我在這裏讀過大部分的問題,但他們不適合我。

回答

0

我解決它通過強制造成的所有外部庫的構建那個錯誤(在解釋器的屬性下建立的力) 對於我的庫,我刪除了所有的.pyc文件,然後再次嘗試並運行。

0

卓悅,

如你,我只對IDE有一個懸而未決的進口和我找到了一個解決方法。

我安裝 「netifaces」 使用適當的命令:

pip3 install netifaces 

安裝完畢後,我得到了在文件夾 「/usr/local/lib/python3.6/site-packages」 兩個條目(REF 。Mac OS +自制軟件)。

  • netifaces-0.10.6.dist-信息
  • netifaces.cpython-36m-darwin.so

在這一點上,我不得不在編輯的PyDev一個懸而未決的問題,進口的,但我當我使用Pydev啓動配置和相同的解釋器啓動應用程序時,應用程序運行良好。

注意:我還導入其他使用pip3安裝的模塊,並且它們的導入沒有產生問題。

我創建符號鏈接「netifaces.so」讓我在「站點包」中發現了Python解釋器2.7.13

ln -s netifaces.cpython-36m-darwin.so netifaces.so 

的文件夾中創建此之後相同的文件,所有運行良好:Pydev編輯器中的進口問題desapear。

問題:錯誤在哪裏?

  1. 在由pip3完成的模塊安裝中:已安裝的「.so」文件沒有模塊的名稱?
  2. 在的PyDev的模塊發現功能不採取照顧「平臺擴展」安裝「所以」的文件的文件名
+0

我沒有時間去測試它,但我想我會嘗試一下「force builtins」。對於那些給我類似問題的圖書館 – maugch

1

我與Orange-Bioinformatics有同樣的問題,代碼運行良好,但PyDev顯示未知的導入。

在這種情況下,問題是Orange-Bioinformatics存檔中缺少__init__.py文件,該文件下載並安裝了該pip。 PyDev似乎需要爲每個模塊命名空間聲明,所以我只是在〜/ .local/lib/python3.4/site-packages/orangecontrib /中創建了一個文件(將/usr/lib/python2.7/sqlite3/放入你的情況下),文件名爲__init__.py並用以下內容保存它:

# namespace stub 
__import__("pkg_resources").declare_namespace(__name__) 

文件被放入子文件夾orangecontrib /生物/

通過窗口剛剛刷新的PyDev的模塊列表 - >首選項 - > PyDev - >解釋器 - > Python解釋器 - >應用。現在所有的人都適合我:-)

相關問題