Pio*_*ost 9 python windows dll pydev virtualenv
我想知道virtualenv创建DLLs
文件夹的原因是什么,它创建Lib
和创建文件夹的方式相同Scripts
?
当我遇到PyDev的以下问题时,问题就出现了;
我将我的一个virtualenvs设置为Python解释器,一切都没问题,只有一个例外.我一直收到有关select
模块中所有导入的未解决导入的警告.这是因为select
模块与大多数其他模块不同,仅存在于DLLs文件夹中.
Pio*_*ost 10
我对此主题进行了一些调查.我从techtonik的声明开始- 答案很简单 - 没有人实现它.然而,这又引出了另一个问题 - 为什么没人实施呢?我怀疑答案是因为它有效.这导致了另一个问题 - 为什么它有效?
没有DLLs
文件夹被复制到virtualenv的一切正常的原因是
sys.path
以找到它需要的任何DLLsys.path
virtualenv激活后包含原始DLLs
文件夹的路径可以通过删除DLLs
文件夹的路径sys.path
并尝试导入select
模块(此模块需要select.pyd
文件DLLs
夹中的文件)然后失败来简单地测试第一个语句.
在评论中,您说我想将Python模块的DLL与Python代码一起保存在虚拟环境中.只需将DLLs
文件夹复制到virtualenv即可.这样做的原因是,sys.path
在virtualenv的激活之后还包含了DLLs
virtualenv中文件夹的路径(尽管在创建virtualenv时没有创建这样的文件夹).此路径位于原始DLLs
文件夹的路径之前,这意味着它首先被搜索,因此会覆盖原始DLLs
文件夹.
我在Python的邮件列表上发布了一个名为DLLs文件夹的问题.
答案很简单 - 没有人实现它.当我创建补丁以将pythonXX.dll复制到virtualenv环境时 - 我正在解决另一个问题:
在系统范围内安装Python时 - 复制到virtualenv的python.exe二进制文件始终能够找到其pythonXX.dll,因为此.dll可从Windows\System32获得.如果仅为当前用户安装Python,则pythonXX.dll将放置在原始python.exe所在的PythonXX目录中.所以我解决的问题是修复为当前用户安装的Python创建的virtualenvs.挖掘所有这些东西是一个很大的问题.
回到问题.我真的不知道这个pythonXX.dll如何找到它的DLL模块 - 这是Python开发人员的一个问题,但我怀疑它找不到它们.在解决问题#87时我没有解决这个问题的原因是我的代码可能从未使用过此DLLs目录中的模块.
归档时间: |
|
查看次数: |
2026 次 |
最近记录: |