我正在维护一个 python 包,其中我做了一些重组。现在,我想支持仍然这样做的客户,from my_package.old_subpackage.foo import Foo而不是新的from my_package.new_subpackage.foo import Foo,而不明确重新引入许多进行转发的文件。(old_subpackage仍然存在,但不再包含foo.py。)
我了解到有“加载器”和“查找器”,我的印象是我应该为我的目的实现一个加载器,但到目前为止我只实现了一个查找器:
RENAMED_PACKAGES = {
'my_package.old_subpackage.foo': 'my_package.new_subpackage.foo',
}
# TODO: ideally, we would not just implement a "finder", but also a "loader"
# (using the importlib.util.module_for_loader decorator); this would enable us
# to get module contents that also pass identity checks
class RenamedFinder:
@classmethod
def find_spec(cls, fullname, path, target=None):
renamed = RENAMED_PACKAGES.get(fullname)
if renamed is not None:
sys.stderr.write(
f'WARNING: {fullname} was …Run Code Online (Sandbox Code Playgroud) 与 vtk 的原始 Python API 相比,我一直更喜欢 Python 化的 tvtk,但使用从 MacPorts 获得的最新版本时,我遇到了基本功能不再起作用的问题。以下片段摘自tvtv 文档:
from tvtk.api import tvtk
cs = tvtk.ConeSource()
cs.resolution = 36
m = tvtk.PolyDataMapper()
m.input = cs.output # <== fails here
a = tvtk.Actor()
a.mapper = m
p = a.property
p.representation = 'w'
print p.representation
Run Code Online (Sandbox Code Playgroud)
每次初始化“输入”特征时,我都会收到类似的错误
TraitError: The 'input' trait of a PolyDataMapper instance is 'read only'.
Run Code Online (Sandbox Code Playgroud)
我发现了许多类似的问题、错误报告等,但它们都指向与 VTK 6 (SetInputData而SetInputConnection不是SetInput)相关的更改,这些更改应该在 Mayavi 4.4.2 中得到支持,并且我有:
vtk @6.3.0_0+python27 (active)
py27-traits @4.5.0_0 …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 Linux 计算机上运行的 Python/requests 连接到公司内部网 HTTPS 服务器,该服务器使用内部 CA。我有一个 .pem 文件,其中包含我们的证书(4096 位 RSA、CSSM_KEYUSE_VERIFY、CA = true)。
\n\n我将其放入/usr/share/ca-certificates并使用的子文件夹中sudo dpkg-reconfigure ca-certificates,以便将其集成到系统中。
在请求文档中,我发现:
\n\n\n\n\n您可以使用可信 CA \xe2\x80\xa6 的证书来验证 CA_BUNDLE 文件或目录的路径。如果将 verify 设置为目录的路径,则该目录必须已使用 OpenSSL 提供的 c_rehash 实用程序进行过处理。
\n
我相信(但不确定)/etc/ssl/certs满足这个条件。
现在,我尝试了多种方式的请求:
\n\nrequests.get(download_url)\n# throws requests.exceptions.SSLError: ("bad handshake: Error([\n# (\'SSL routines\', \'ssl3_get_server_certificate\',\n# \'certificate verify failed\')],)",)\n\nrequests.get(download_url, verify = False)\n# works, but is obviously bad (and spits out a warning)\n\nrequests.get(download_url, verify = pem_file_path)\n# same SSLError as above …Run Code Online (Sandbox Code Playgroud)