我们为了确保每个系统都有相同的Python安装并减轻配置问题,为所有系统提供了一个通用的Python安装。这个安装位于共享驱动器上。我们还有多个平台共享此安装。我们通过在编译Python时设置--exec-prefix配置选项来解决冲突的特定于平台的文件。
我的问题是,我现在想安装一个使用easy_install(或其他方式)的平台相关的egg。 easy_install将该egg放置在安装的平台无关部分的site-packages目录中。 egg的名称中包含平台信息,因此不应该存在冲突。但是Python只会加载它找到的第一个egg。(因此,在Solaris上,它可能会尝试加载Linux egg)。修改easy-install.pth文件可以更改它找到的内容,但这没什么用。
我可以将.egg文件移动到平台相关的软件包目录中,然后使用pkg_resources.require()来加载它们(或手动调整路径)。但似乎我不应该这样做,因为egg的名称中已经包含了平台信息。
有没有更通用的方法可以确保Python加载正确平台的egg?
我的问题是,我现在想安装一个使用easy_install(或其他方式)的平台相关的egg。 easy_install将该egg放置在安装的平台无关部分的site-packages目录中。 egg的名称中包含平台信息,因此不应该存在冲突。但是Python只会加载它找到的第一个egg。(因此,在Solaris上,它可能会尝试加载Linux egg)。修改easy-install.pth文件可以更改它找到的内容,但这没什么用。
我可以将.egg文件移动到平台相关的软件包目录中,然后使用pkg_resources.require()来加载它们(或手动调整路径)。但似乎我不应该这样做,因为egg的名称中已经包含了平台信息。
有没有更通用的方法可以确保Python加载正确平台的egg?