如何将 pywin32 与 virtualenv 一起使用,而不必包含主机环境的 site-packages 文件夹?

StackOverflow https://stackoverflow.com/questions/1830304

我正在与 py安装程序 在Python 2.6下,由于MS用其明显的废话造成的混乱,仅部分支持它,这些混乱现在影响了Python,因为它现在是MSVC8编译的。

问题是清单嵌入支持依赖于 pywin32 扩展以构建这是一个痛苦,因为当我创建时不包含主机的站点包文件夹 虚拟环境 (有点违背了构建环境中的要点)我找不到安装所需扩展的方法,以便 PyInstaller 可以访问它们。

有没有人找到这个问题的解决方案?

有帮助吗?

解决方案 3

OK,很好,因为我必须找到一条前进的道路我即兴。我已经在内部创建了pywin32的黑客在一起的版本,将使用标准setup.py脚本的virtualenv中安装一个Git仓库。我花了很多摆弄使其工作的权利,但我设法得到它加载和相关代码现在工作,因为我需要它。如果人们觉得这将是造福于社会,请发表评论。如果我获得足够的我会尽力把东西在我的github上的帐户

其他提示

我发现 http://old.nabble.com/Windows:-virtualenv-and-pywin32--td27658201.html (现在是一个死链接)它提供了以下解决方案:

  1. 浏览 http://sourceforge.net/projects/pywin32/files/ 为您想要的 exe 的 URL
  2. 激活你的虚拟环境
  3. 跑步 easy_install http://PATH.TO/EXE/DOWNLOAD

这适用于现代版本的 setuptools(大约 2014 年 2 月,tovmeod 在评论中报道)。


如果您使用的是旧版本的 setuptools(或将其分发合并回 setuptools),您可能会收到以下错误消息:

错误:c:\users\blah\appdata\local emp\easy_install-ibkzv7\pywin32-214.win32-py2.6.exe 不是有效的 distutils Windows .exe

在这种情况下:

  1. 自己下载exe
  2. 激活你的虚拟环境
  3. 跑步 easy_install DOWNLOADED_FILE.exe

我宁愿尝试“pip install”而不是“easy_install”,但这不起作用,而且可能永远不会起作用(需要引用)。


最后,我找到了但尚未测试的解决方案 http://www.mail-archive.com/python-list@python.org/msg272040.html 这是:

通过将pywin32.pth文件复制到我的virtualenv站点包中解决了这个问题 并编辑文件以指向路径。

如果其他选项不适合您,也许这个可以?

有关的Python 2.7或3.x的使用 pypiwin32

pip install pypiwin32

自之前的回答以来,这可能已经得到了改进,因为我已经在几台机器上的沙箱上成功安装了 pywin32,而没有任何特定的“黑客”:

$ virtualenv sandbox
$ sandbox\scripts\activate
(sandbox) $ git clone https://github.com/Travis-Sun/pywin32.git
(sandbox) $ cd pywin32
(sandbox) $ python setup.py install

使用以下环境进行测试:

编辑:scratch这从目前来看,似乎是有些问题,安装仍然...

我累坏了的整体情况,并就创建了一个集转换后车轮(“轮转换<.EXE>”)。我会试着让他们保持最近建立的,但如果有任何问题,不要喊。

https://tr00st.co.uk/python/wheel/pywin32/

安装可以很容易地使用PIP和指向包符合版本和体系结构来实现。例如,对于3.5的Python / AMD64:

PIP安装的https:// tr00st。 co.uk/python/wheel/pywin32/pywin32-219-cp35-none-win_amd64.whl

警告:该--upgrade过程目前出现故障,卸载过程无法清理后本身(清理win32api.pyd时拒绝访问) - 这只是移除临时目录时,其可以是手动删除。解决此最简单的方法是卸载和重新安装而不是升级,然后手动删除临时文件夹。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top