오프라인imap이 python2.7을 사용하도록 강제하는 방법은 무엇입니까?

오프라인imap이 python2.7을 사용하도록 강제하는 방법은 무엇입니까?

새 컴퓨터를 설정하고 설치했는데, 이를 실행하려고 하면 Offlineimap이 Python3을 지원하지 않기 때문에 일련의 오류가 발생합니다 offlineimap.pip install --user offlineimap

https://github.com/OfflineIMAP/offlineimap/issues/472

2.7과 3을 설치했습니다.

amanda@host:~$ python --version
Python 2.7.15rc1

하지만 나조차도 Offlineimap을 강제로 사용하는 방법을 모릅니다.

모든https://stackoverflow.com/questions/10919569/install-a-module-using-pip-for-specific-python-versionPython 버전을 지정하여 제거하고 다시 설치를 시도했지만 이것은 그 자체의 특별한 방식으로 숨이 막힙니다.

amanda@host:~$ python2.7 ~/.local/bin/pip install --user offlineimap
Traceback (most recent call last):
  File "/home/amanda/.local/bin/pip", line 7, in <module>
    from pip._internal import main
ImportError: No module named pip._internal

전체 OfflineIMAP 오류:

OfflineIMAP 7.2.1
  Licensed under the GNU GPL v2 or any later version (with an OpenSSL exception)
imaplib2 v2.57 (bundled), Python v3.6.5, OpenSSL 1.1.0g  2 Nov 2017
Account sync Example:
 *** Processing account Example
 Establishing connection to mail.example.info:993 (VelRemote)
 ERROR: While attempting to sync account 'Example'
  IMAP4 protocol error: program error: <class 'TypeError'> - cannot use a bytes pattern on a string-like object
 *** Finished account 'Example' in 0:00
ERROR: Exceptions occurred during the run!
ERROR: While attempting to sync account 'Example'
  IMAP4 protocol error: program error: <class 'TypeError'> - cannot use a bytes pattern on a string-like object

Traceback:
  File "/home/amanda/.local/lib/python3.6/site-packages/offlineimap/accounts.py", line 283, in syncrunner
    self.__sync()
  File "/home/amanda/.local/lib/python3.6/site-packages/offlineimap/accounts.py", line 359, in __sync
    remoterepos.getfolders()
  File "/home/amanda/.local/lib/python3.6/site-packages/offlineimap/repository/IMAP.py", line 452, in getfolders
    imapobj = self.imapserver.acquireconnection()
  File "/home/amanda/.local/lib/python3.6/site-packages/offlineimap/imapserver.py", line 547, in acquireconnection
    af=self.af,
  File "/home/amanda/.local/lib/python3.6/site-packages/offlineimap/imaplibutil.py", line 194, in __init__
    super(WrappedIMAP4_SSL, self).__init__(*args, **kwargs)
  File "/home/amanda/.local/lib/python3.6/site-packages/offlineimap/bundled_imaplib2.py", line 2183, in __init__
    IMAP4.__init__(self, host, port, debug, debug_file, identifier, timeout, debug_buf_lvl)
  File "/home/amanda/.local/lib/python3.6/site-packages/offlineimap/bundled_imaplib2.py", line 400, in __init__
    self.welcome = self._request_push(name='welcome', tag='continuation').get_response('IMAP4 protocol error: %s')[1]
  File "/home/amanda/.local/lib/python3.6/site-packages/offlineimap/bundled_imaplib2.py", line 201, in get_response
    raise typ(exc_fmt % str(val))

답변1

Python 3 Offlineimap 설치는 Python 2 설치보다 우선합니다.

Python 3 버전을 제거하려면 다음 안내를 따르세요.

sudo rm -rf /home/amanda/.local/lib/python3.6/site-packages/offlineimap*

그 후에는 이제 Python 2 버전을 얻을 수 있기를 바랍니다.

알려진 문제

사용 중인 오류는 pipDebian/Ubuntu에서 알려진 문제입니다.

sudo apt-get install python-pip

또는

sudo easy_install pip

OP에서도 지적했듯이 Python 3 오프라인 맵 패키지를 제거한 후 apt대신 다음을 pip사용하여 Python 2 버전을 설치해야 합니다.

sudo apt install offlineimap

답변2

청소하다pip*

$ python3 -m pip uninstall pip
$ python -m pip uninstall pip

삭제 해야 합니다 ~/.local/bin/pip.

로컬로 다시 설치 pip:

$ curl -LO https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py --user

패키지를 설치하십시오.

$ python2.7 ~/.local/bin/pip install --user offlineimap

관련 정보