我試圖使用Python訪問我們的Samba服務器上的文件。我發現我需要爲此使用Samba客戶端,所以我開始使用PySmbClient。儘管網上有很多關於如何做到這一點的例子,但我只是不想工作。見下文。無法通過Python訪問Samba服務器上的文件
smb = smbclient.SambaClient(server="192.168.0.320", share="DATA", domain="WORKGROUP",username="admin", password="abc123")
f = smb.open('test.json', 'r')
這將產生以下錯誤:
OSError: [Errno 2] No such file or directory
與以下跟蹤:
Traceback (most recent call last):
File "create_dataset.py", line 35, in <module>
f = smb.open('serverSaver.txt', 'r')
File "/home/grant/Development/create_dataset/env/local/lib/python2.7/site-packages/smbclient.py", line 408, in open
f = _SambaFile(self, path, mode)
File "/home/grant/Development/create_dataset/env/local/lib/python2.7/site-packages/smbclient.py", line 448, in __init__
connection.download(remote_name, self._tmp_name)
File "/home/grant/Development/create_dataset/env/local/lib/python2.7/site-packages/smbclient.py", line 393, in download
result = self._runcmd('get', remote_path, local_path)
File "/home/grant/Development/create_dataset/env/local/lib/python2.7/site-packages/smbclient.py", line 184, in _runcmd
return self._raw_runcmd(fullcmd)
File "/home/grant/Development/create_dataset/env/local/lib/python2.7/site-packages/smbclient.py", line 168, in _raw_runcmd
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
raise child_exception
我已經閱讀並實施了很多的 「解決方案」,但迄今沒有奏效的我。我可以通過我的文件管理器使用給定的憑證訪問Samba服務器,所以我知道這些值應該沒問題。我甚至和我們的系統管理員交談過,他不知道什麼是錯的。
它不僅僅是我寫的簡單代碼。你認爲在服務器端有什麼問題嗎?與我輸入到SambaClient中的值有什麼關係?在這一點上,我對任何導致解決方案的東西都非常開放。
我切換到pysmb並得到的東西馬上工作。謝謝你的幫助。 – grantathon