为什么python27.dll不是python安装文件夹的一部分,而是在Windows系统文件夹中

时间:2015-03-20 14:20:10

标签: python windows

如:http://bugs.python.org/issue22139中所述,python27.dll安装在Windows系统(在我的C:\ Windows \ Systems32)文件夹中。

但我想知道为什么?为什么它没有安装在python.exe旁边,例如在C:\ Python27 \?

我问的原因:我在python中创建了一个mercurial hook,我们的开发人员需要使用它来检查提交消息是否有效。它会检查a.o.有效的JIRA问题编号。为了防止我们所有的开发人员自己安装python并手动安装所需的模块(很多工作和错误),我压缩了python安装并要求开发人员在本地解压缩它。但他们无法运行它,因为python27.dll丢失了,或者更糟糕的是,他们已经安装了另一个较小版本的python,并且由于使用了错误的python27.dll,钩子将失败。混乱。 如果我只是将python27.dll(正确的版本)添加到zip文件中,它似乎都很好用。那么,为什么它首先没有安装在那个位置?在C:\ Windows \ System32中安装它有什么好处?

希望有人能向我解释一下! 提前致谢, Tallandtree。

3 个答案:

答案 0 :(得分:1)

我使用来自http://continuum.io的Anaconda Python发行版。他们将python27.dll放在其python.exe旁边的c:\ anaconda中。这种分布也很优越,因为您可以拥有多个具有所需软件包的python环境,并可以轻松地在它们之间切换(http://conda.pydata.org/docs/using/envs.html)。您还可以获取某个环境的包列表并将其分发给其他人。

由于这个问题,我建议使用python.org和Enthought上的Python发行版。

答案 1 :(得分:0)

.dll是特定于Windows的文件。我想你将拥有LINUX / UNIX特定Python东西的共享对象(.so)文件?你说你的开发人员无法运行它,因为他们没有正确的DLL(即与他们的Python安装相关的DLL)。

此外,将其安装到System32的优点是它在默认的PATH中。另外,如果任何其他应用程序在内部使用Python并且需要访问.dll文件,并且也没有引用您的Python目录,那么他们可能会寻找“实际”存在的位置(我想说保证存在,但......从不介意)。该位置将是“C:/ windows / Systems32”。

答案 2 :(得分:0)

我发现将python27.dll放在Python目录(c:\ Python27或其中)可以正常工作。只要它在PATH中,它似乎有效。我这样做是为了#34;可重新定位的"安装Python。我可以将安装目录复制到没有安装Python的Windows机器上,将PATH设置为包含该目录,然后运行Python,包括我在原始机器上使用pip install安装的所有库。