Когда я пытаюсь импортировать ftpserver из pyftpdlib, выдается "ImportError: невозможно импортировать имя ftpserver"
from pyftpdlib import ftpserver
HOSTNAME = "localhost"
PORT = 5555
authorizer = ftpserver.DummyAuthorizer()
authorizer.add_user("papakri", "dancinghotdogs", "/Users/alexandrospapakribopoulos/Documents/Programming")
authorizer.anonymous("/Users/alexandrospapakribopoulos/Documents/Programming")
handler = ftpserver.FTPHandler
handler.authorizer = authorizer
connection = (HOSTNAME, PORT)
ftpd = ftpsserver.FTPServer(connection, handler)
ftpd.serve_forever()
Я пытаюсь создать базовый FTP, подключиться к нему и подключиться к созданному мной HTTP-серверу. Я немного новичок в Python, поэтому, даже если это что-то действительно очевидное, пожалуйста, укажите это. Я использую Python 2.7.10. Заранее спасибо.
3 ответа
- Во-первых ты
pip install pyftpdlib
уже, если не сделать это первым - Следующим шагом вы неправильно импортируете ftp сервер
from pyftpdlib.servers import FTPServer
это как вы должны импортировать его в соответствии с документом https://pythonhosted.org/pyftpdlib/tutorial.html - Затем вы можете передать детали соединения в конструктор
Убедитесь, что пакет установлен:
pip install pyftpdlib
Убедитесь, что вы сделали это с установленной виртуальной средой, если вы ее используете. Забудьте это предложение, если вы не знаете, о чем я говорю.
Тогда, согласно примеру с репо, ваш код должен быть:
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
authorizer = DummyAuthorizer()
authorizer.add_user("user", "12345", "/home/giampaolo", perm="elradfmw")
authorizer.add_anonymous("/home/nobody")
handler = FTPHandler
handler.authorizer = authorizer
server = FTPServer(("127.0.0.1", 21), handler)
server.serve_forever()
Ваш фрагмент может быть устаревшим по сравнению с версией пакета.
Кажется, у вас есть операционная система OSX. Для Mac вы можете установить использование Python brew
как это:
brew install python
и тогда у вас есть pip
менеджер пакетов для Python, тогда вы можете установить pyftpdlib
пакет с этой командой:
pip install pyftpdlib
а затем вы можете попробовать еще раз, чтобы запустить свой код
В итоге я могу сказать, что вы можете isntall пакеты в операционных системах, как это:
linux на основе менеджера хранилища apt-get:
sudo apt-get install pip
pip install your_package_name
osx:
brew install python
pip install your_package_name
CentOS / RHEL
sudo yum install python-pip
pip install your_package_name