2017-02-09 48 views
0

我試圖讓泊塢窗-PY工作和正在運行進入到泊塢窗-PY在所有可能不相關的根本問題。搬運工-PY錯誤:NameError:名「客戶」沒有定義

我安裝通過PIP泊塢窗-PY(這裏是再運行它的輸出 - 應該回答的版本問題):

>pip install docker-py                                                  
Requirement already satisfied: docker-py in /usr/local/lib/python2.7/site-packages 
Requirement already satisfied: docker-pycreds>=0.2.1 in /usr/local/lib/python2.7/site-packages (from docker-py) 
Requirement already satisfied: backports.ssl-match-hostname>=3.5; python_version < "3.5" in /usr/local/lib/python2.7/site-packages (from docker-py) 
Requirement already satisfied: ipaddress>=1.0.16; python_version < "3.3" in /usr/local/lib/python2.7/site-packages (from docker-py) 
Requirement already satisfied: requests!=2.11.0,>=2.5.2 in /usr/local/lib/python2.7/site-packages (from docker-py) 
Requirement already satisfied: six>=1.4.0 in /usr/local/lib/python2.7/site-packages (from docker-py) 
Requirement already satisfied: websocket-client>=0.32.0 in /usr/local/lib/python2.7/site-packages (from docker-py) 

試圖執行一些代碼樣本(來自http://containertutorials.com/py/docker-py.html)和我沒有正確出了大門:

>python                                                      
Python 2.7.13 (default, Dec 17 2016, 23:03:43) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from docker import client 
>>> cli = Client(base_url='unix://var/run/docker.sock') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'Client' is not defined 

我得到了類似的故障嘗試,充分利用AutoVersionClient(client = AutoVersionClient(base_url='unix://var/run/docker.sock'))不同的代碼的例子,但失敗與沒有定義類似AutoVersionClient。

這肯定感覺就像我的系統上的內核配置問題,但我不知道問題出在哪裏。

+0

添加更多的這個 - 我成立了一個放浪與Ubuntu/trusty64(Python的2.7.6),跑到上面的代碼,並得到了相同的結果,所以我不認爲這是一個環境問題。 –

回答

1

客戶端和客戶端不是一回事嗎?

✗ python 
Python 2.7.12 (default, Nov 8 2016, 15:40:43) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from docker import Client 
>>> cli = Client(base_url='unix://var/run/docker.sock') 
>>> from docker import client 
>>> 
+0

有趣的是,它可以讓我同時導入。從來沒有真正看過。 – MLindsay

+0

我得到一個不同的錯誤的情況相匹配時:'類型錯誤:「模塊」對象不是callable' –

+0

有一個建議這裏說的端口正在使用,並且要創建這就是爲什麼插座不能。 https://forums.docker.com/t/automatically-building-containers-and-creating-images/11180/5不幸的是,該線程沒有提供任何解決方案。 – MLindsay

0

如果您安裝了docker-py 2.0或更新版本,客戶端已重命名。低級API現在是docker.APIClient,而不是docker.Client

+0

謝謝。 'pip freeze'說我正在運行docker-py == 1.10.6。 –

+0

是的,MLindsay有正確的答案,我沒有仔細觀察。你能夠導入兩者的原因是因爲[docker-py codebase]中的''docker''目錄中有一個'client.py'(https://github.com/docker/docker-py /blob/1.10.6/docker)。 ''__init __。py'' [導入客戶端類](https://github.com/docker/docker-py/blob/1.10.6/docker/__init__.py#L6)from''client.py' '。因此,''docker.client.Client''和''docker.Client''是等價的。 – Erik

相關問題