【发布时间】:2020-04-15 18:26:56
【问题描述】:
注意:请不要在这里评论 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: Drive 上的任何其他文件夹中执行脚本,模块会完美加载而不会出错。我不知道这个文件夹有什么不同导致我的模块无法加载。也许,这个文件夹中有一个文件导致了这个?
【问题讨论】:
-
不相关提示:使用另一个 python 版本(如 3.8),因为不再支持 2.7
-
是的,我知道。这适用于尚未迁移到 3.8 的现有项目。我必须尽快完成这项工作。
-
如果你运行会发生什么:import sys for path in sys.path: print(path)
-
正如帖子中提到的,这些模块导入就好了。
-
sys.prefix设置为什么?
标签: python windows python-2.7