核心模块如何从另一个核心模块导入不存在的名称?
具体来说,re模块导入enum.IntFlag
繁殖方式
可以通过启动解释器并尝试导入,运行依赖于以下程序的程序来复制它,enum.IntFlag例如pip,使用文本编辑器在Eclipse中查看解释器设置页面,在文本编辑器中运行PyDev,...
直接导入
from enum import IntFlag
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name 'IntFlag'
Run Code Online (Sandbox Code Playgroud)
运行一个依赖程序(点子)
Traceback (most recent call last):
File "/usr/bin/pip", line 4, in <module>
import re
File "/usr/lib/python3.6/re.py", line 142, in <module>
class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'
Run Code Online (Sandbox Code Playgroud)
在Eclipse中查看Python解释器设置也会产生上述回溯(在解释器设置所在的窗口中)。
Preferences =:> PyDev =:> Interpreters =:> Python Interpreter
此外,文本编辑器无法识别打印语句。
另外,当我运行控制台解释器时(例如:Ctrl+Alt+Enter,eclipse失败,并显示以下弹出窗口:
“创建交互式控制台”遇到问题。
初始化控制台时出错。
错误详情
单击错误详细信息按钮: …
我正在使用Python 3.8。
我发现 PyUSB 被建议作为一种选择;但是,我已经尝试过,但没有找到后端。包含的后端适用于 libusb0.1、libusb1.0 和 OpenUSB。
libusb0.1 是遗留的。
libusb1.0 是当前版本;但是,通过 pip 安装它并不能使 PyUSB 工作(它仍然找不到后端)。
OpenUSB 是 libusb1.0 的一个分支,专注于多线程支持,但没有 Windows 版本。
作为答案,我会接受一种让 PyUSB 与 libusb1.0 一起工作的方法;或在 Windows 上运行的不同 python 库。所需的最低功能是设备的枚举和迭代、通过 ID 获取特定设备、获取设备信息(特别是枚举列表中的 ID)、浏览设备的文件系统以及从设备的文件系统复制。
PyUSB,有或没有libusb1 (1.7.1)
import usb
devices = list(usb.core.find(find_all=True))
print(devices)
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Users\scott\.p2\pool\plugins\org.python.pydev.core_7.5.0.202001101138\pysrc\_pydev_bundle\pydev_umd.py", line 167, in runfile
execfile(filename, namespace)
File "C:\Users\scott\.p2\pool\plugins\org.python.pydev.core_7.5.0.202001101138\pysrc\_pydev_imps\_pydev_execfile.py", line 25, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:\Code\Py\Path\PhoneSync\phone_sync.py", line 12, in <module>
devices …Run Code Online (Sandbox Code Playgroud) 我想复制文件/目录树(当然是递归地),文件名中包含错误的字符.所以,我打开文件,读取其内容,并将它们转储到一个名为clean的新文件中.
如果文件的内容是文本,并且我在二进制模式下读取()它们到write(),是否有可能损坏内容?
for name in os.listdir(src_path):
name = clean_name(name)
src_full = os.sep.join((src_path, name))
dst_full = os.sep.join((dst_path, name))
...
if isfile(src_full):
with open(dst_full, 'xb'): as dst_file:
with open(src_full, 'rb')) as src_file:
dst_file.write(src_file.read())
Run Code Online (Sandbox Code Playgroud) 就像你不会Vector在兽医中使用一个Cat对象列表,但是使用一个ArrayList,你也不会使用一个ArrayList键/值对列表,但可能会选择一个HashMap.
Path的正确选择是什么?
如果有人发现这个,我发现了这个:http: //java.dzone.com/articles/performance-java-collections
它具有ArrayList,HashMap和LinkedList的性能基准.查看各种情况的确切差异非常有用.
python ×3
python-3.x ×3
archlinux ×1
collections ×1
file-io ×1
java ×1
nio ×1
pydev ×1
python-3.4 ×1
pyusb ×1
windows ×1
windows-10 ×1