Когда я пытаюсь импортировать 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
Другие вопросы по тегам