Pastebin pbwrap имеет ошибку атрибута: __введите__ с помощью io.open() на python 3.9.5

#python #python-3.x #pypi

Вопрос:

Пакет pastebin pbwrap из pypi всегда работал для меня правильно раньше, но он не работает с python 3.9.5. Он не может прочитать входной файл и выдает ошибку ниже.

 from pbwrap import Pastebin   # https://pypi.org/project/pbwrap/

api_dev_key = r'your key'
username = r'your login'
password = r'your password'
pb = Pastebin(api_dev_key)
user_id = pb.authenticate(username, password)

### Pasting text to pastebin works as expected.
paste_url = pb.create_paste('this is a test', api_paste_private=1, api_paste_name='test')
print(paste_url)

### Make a simple text file to upload to pastebin
with open('test.txt', 'w') as f:
    f.write('This is line #1n')
    f.write('This is line #2n')

### When uploading a file to pastebin, an I/O error is returned from io.open() called from pbwrap
paste_url = pb.create_paste_from_file('test.txt', api_paste_private=1, api_paste_name='test')
print(paste_url)

### pbwrap.py", line 180, in create_paste_from_file
###     with io.open(
### AttributeError: __enter__
 

Ответ №1:

Это оказалось ошибкой, которая была введена в 2020 году, когда модуль был обновлен для использования utf-8. Я разветвил исходный код pbwrap и отправил исправление. Прочитанный файл необходимо было переместить за пределы контекста с помощью ввода-вывода.открыть.

Ответ №2:

вы можете попробовать переустановить пакет с помощью команды pip, она будет работать для вас

Комментарии:

1. Хорошо, я попытался выполнить pip-удаление pbwrap, а затем pip-установку pbwrap: Успешно удалена pbwrap-1.2.2 pip-без кэша-dir установка pbwrap Успешно установлена pbwrap-1.2.2 Тот же результат: pbwrap.py», строка 180, в файле create_paste_from_file с io.open( ошибка атрибута: введите

2. Я работаю в виртуальной среде, созданной python 3-m venv venv в каталоге проекта.