2016-12-28 65 views
3

昨天我將PC上的Python從3.5.1更新到最新版本:3.6。 我在3.5.2到3.6的筆記本上做了同樣的事情。 不時更新Python是很自然的。最後的Python版本錯過更新庫,該如何處理?

我想使用Couchbase。 Python的最新SDK適用於3.4版本!
(couchbase-2.1.3.win-AMD64-py3.4.exe)

而且該庫可能被竊聽,因爲 「點子安裝couchbase」 返回此錯誤(在兩臺不同的機器)。

building 'couchbase._libcouchbase' extension 
    creating build\temp.win32-3.6 
    creating build\temp.win32-3.6\Release 
    creating build\temp.win32-3.6\Release\src 
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -D_CRT_SECURE_NO_WARNINGS=1 
-I..\lcb-winbuild\x86\deps\include "-Ic:\program files (x86)\python36-32\include" "-Ic:\program files (x86)\python36-32\include" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt" /Tcsrc\exceptions.c /Fobuild\temp.win32-3.6\Release\src\exceptions.obj 
    exceptions.c 
    c:\users\alex\appdata\local\temp\pip-build-h_bixmeo\couchbase\src\pycbc.h(25): fatal error C1083: Cannot open include file: 'libcouchbase/couchbase.h': No such file or directory 
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed with exit status 2 

    ---------------------------------------- Command ""c:\program files (x86)\python36-32\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\alex\\AppData\\Local\\Temp\\pip-build-h_bixmeo\\couchbase\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install 
--record C:\Users\alex\AppData\Local\Temp\pip-tkag3cnx-record\install-record.txt 
--single-version-externally-managed --compile" failed with error code 1 in C:\Users\alex\AppData\Local\Temp\pip-build-h_bixmeo\couchbase\ 

...和Python的SDK在GitHub(https://github.com/couchbase/couchbase-python-client)被標記爲[建設|失敗。

這不是我第一次有一個太新版本的Python,但沒有庫X的更新版本。

您如何處理這個問題?
對這個「一般」問題有一個解決方法?

我的意思是在Python 3.5/3.6系統上安裝Python 3.4庫「X」的方法。

的Alessandro

[更新]
先前錯誤(缺少 'libcouchbase/couchbase.h')是由於缺少CouchbaseÇSDK。 Python SDK依賴於C SDK。 此外,Python SDK不能通過pip安裝:

請注意,通過pip安裝在Windows上不起作用。

代替的PyPI頁,它沒有提到任何問題,都建議使用在GitHub上:
pip install git+git://github.com/couchbase/couchbase-python-client

也是C SDK是不是安裝在Windows點子。 :-( 文檔說,你可以下載二進制版本爲您的環境和

的C SDK沒有任何首選安裝路徑,它是由 你來決定在哪裏放置libcouchbase.dll 。

1)Win x64上Visual Studio 2015的最新版本(2.7.0)的鏈接已損壞。我必須使用舊版本或Visual Studio 2012版本。 2)我不知道在哪裏解壓這個SDK。根本沒有任何指示。我沒有在Google上找到任何關於在Windows上安裝Python DSDK的帖子/示例)。

pip install在C:\ users(當前用戶)\ AppData \ Local \ Temp(pip-khfdskhfsdk-build)下創建一個新的臨時文件夾,所以我不知道如何指示libcouchbase.h文件的位置或C SDK的路徑)。

我試圖建立使用來自源的SDK:

python setup.py build_ext --inplace 
    --library-dir d:\Downloads\libcouchbase-2.7.0_amd64_vc11\libcouchbase-2.7.0_amd64_vc11\lib 
    --include-dir d:\Downloads\libcouchbase-2.7.0_amd64_vc11\libcouchbase-2.7.0_amd64_vc11\include 

,但我有54級象這樣的錯誤: exceptions.obj:錯誤LNK2001:無法解析的外部符號_imp__lcb_get_errtype (與libcouchbase 2.6同樣的錯誤。 4版VS 012)

此時我最好的選擇是嘗試使用Python 3.4的Windows安裝程序(應包括C SDK本身),但安裝程序會檢查Python 3.4版本。
如何強制Python 3.4的安裝程序在我的Python 3.6上運行?

+2

大多數代碼其中工程在python3.4上_should_也適用於python3.5。自從您上次爲python3.4安裝它之後,'couchbase-python-client'中可能會引入一個錯誤。這也將解釋你所看到的「[失敗]」。如果可能的話,你應該看看你在python3.4中工作的couchbase客戶端的版本,然後嘗試使用'pip'專門安裝該版本...('pip install couchbase == ') – mgilson

+0

另外,MongoDB只有驅動程序對於Python 3.4,但'pip install pymongo'(在Python 3.6上)工作正常。 這個版本的Couchabse Python SDK可能不起作用。 –

回答

1

我建議你用你想使用的正確的Python版本創建一個virtualenv。即使您的系統上安裝了多個版本,也可以使用較舊版本的Python進行項目。我相信你可以使用-p標誌來創建virtualenv來指定你想要使用的Python版本。一旦你在這個virtualenv,你可以pip install你的依賴沒有問題。

東西,這將使的virtualenv更實用一點你會virtualenvwrapper,所以檢查出太多,如果你有時間(雖然我不知道這是否適用於Windows。)

+0

可以避免這種麻煩嗎?我不介意virtualenv,但我不想將我的整個項目2版本移回(這有風險不兼容),只能連接到Python Couchbase ......有沒有其他方法? –

+1

你可以編寫一個單獨的python 3.4程序,你可以通過shell程序來完成你的couchbase查詢。但是,如果我處於你的位置,我會將客戶端移植到3.6或停止爲我的項目使用couchbase或Python之一。 – 2rs2ts

相關問題