Python 2.7 не загружает модули, которые я установил. Загружать будут только собственные модули, которые поставляются с Python 2.7 - PullRequest
0 голосов
/ 15 апреля 2020

Примечание. Пожалуйста, не комментируйте здесь, что Python 2.7 амортизируется. Я уже знаю это. Прежде чем перейти на 3.x.

, мне нужно, чтобы это работало в первую очередь. На Windows 10 я установил (и работает правильно) оба Python 2.7 и Python 3.7. Поскольку мне нужно было только Python 2.7, я удалил Python 3.7 (и вручную удалил соответствующие пакеты, установленные в. \ Python37 *), а также каталог виртуальной среды ниже. Я понятия не имею, было ли это виртуальное окружение связано с Python 2.7 или Python 3.7:

C:\Users\MKANET\Envs\MKA.NETT

После перезагрузки, к моему ужасу, каждый раз, когда я запускаю скрипт Python 2.7, я получить целую кучу неоднозначных ошибок трассировки при попытке импортировать модули, которые я установил с PIP (для Python 2.7). Тем не менее, У меня нет проблем с импортом таких модулей, как sys, json (пакеты, поставляемые с предустановленным Python 2.7) . При выполнении приведенного ниже сценария из командной строки Windows:

& C:/Users/MKANET/AppData/Local/Programs/Python/python27/python.exe c:/Users/MKANET/OneDrive/Dev/Projects/Python/test2.py

... я получаю кучу неоднозначных ошибок трассировки:.

Traceback (most recent call last):
File "c:/Users/MKANET/OneDrive/Dev/Projects/Python/test2.py", line 3, in <module>
  from pypsexec.client import Client
File "C:\Users\MKANET\AppData\Local\Programs\Python\python27\lib\site-packages\pypsexec\client.py", line 8, in <module>
  from smbprotocol.connection import Connection, NtStatus
File "C:\Users\MKANET\AppData\Local\Programs\Python\python27\lib\site-packages\smbprotocol\connection.py", line 33, in <module>
  from cryptography.hazmat.primitives.ciphers import (
File "C:\Users\MKANET\AppData\Local\Programs\Python\python27\lib\site-packages\cryptography\hazmat\primitives\ciphers\aead.py", line 10, in <module>
  from cryptography.hazmat.backends.openssl import aead
File "C:\Users\MKANET\AppData\Local\Programs\Python\python27\lib\site-packages\cryptography\hazmat\backends\openssl\__init__.py", line 7, in <module>
  from cryptography.hazmat.backends.openssl.backend import backend
File "C:\Users\MKANET\AppData\Local\Programs\Python\python27\lib\site-packages\cryptography\hazmat\backends\openssl\backend.py", line 16, in <module>
  from cryptography import utils, x509
File "C:\Users\MKANET\AppData\Local\Programs\Python\python27\lib\site-packages\cryptography\x509\__init__.py", line 8, in <module>
  from cryptography.x509.base import (
File "C:\Users\MKANET\AppData\Local\Programs\Python\python27\lib\site-packages\cryptography\x509\base.py", line 18, in <module>
  from cryptography.x509.extensions import Extension, ExtensionType
File "C:\Users\MKANET\AppData\Local\Programs\Python\python27\lib\site-packages\cryptography\x509\extensions.py", line 26, in <module>
  from cryptography.x509.general_name import GeneralName, IPAddress, OtherName
File "C:\Users\MKANET\AppData\Local\Programs\Python\python27\lib\site-packages\cryptography\x509\general_name.py", line 10, in <module>
  from email.utils import parseaddr
File "c:\Users\MKANET\OneDrive\Dev\Projects\Python\email.py", line 11, in <module>
  obj = win32com.client.Dispatch("Outlook.Application")
File "C:\Users\MKANET\AppData\Local\Programs\Python\python27\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
  dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
File "C:\Users\MKANET\AppData\Local\Programs\Python\python27\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName
  return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "C:\Users\MKANET\AppData\Local\Programs\Python\python27\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
  IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)

ОБНОВЛЕНИЕ ОГРОМНОГО КЛУБА: Это ТОЛЬКО происходит при выполнении сценариев в следующей папке:

C:\Users\Michael\OneDrive\Dev\Projects\Python

Если я выполняю сценарий в любой другой папке на моем C: накопителе, модули загружаются без ошибок. Я не знаю, что отличается от этой папки, из-за чего мои модули не загружаются. Может быть, в этой папке есть файл, который вызывает это?

1 Ответ

0 голосов
/ 16 апреля 2020

Поскольку эта проблема была ограничена только сценариями внутри каталога ниже:

C:\Users\Michael\OneDrive\Dev\Projects\Python

Мне удалось сузить проблему до файла с именем email.py. Если я попытался импортировать модуль, например, запросы; по какой-то странной причине email.pyc будет создано; затем следуют ошибки модуля импорта. Все, что я сделал, это переименовал email.py в mail.py .. и вся эта проблема, наконец, прекратилась.

Я понятия не имею, почему Python 2.7 чувствителен к этому имени файла, но изменил его на другое решил проблему для меня. Может быть, кто-то мог бы прокомментировать, почему имя файла ломает вещи; особенно когда у меня был __init__.py в том же каталоге для импорта другого модуля.

...