#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 в каталоге проекта.