当前位置: 首页 > 面试题库 >

如何跨平台共享conda环境

夏侯衡
2023-03-14
问题内容

http://conda.pydata.org/docs/using/envs.html上的conda文档介绍了如何与他人共享环境。

但是,文档告诉我们这不是跨平台的:

NOTE: These explicit spec files are not usually cross platform, and      
therefore have a comment at the top such as # platform: osx-64 showing the  
platform where they were created. This platform is the one where this spec
file is known to work. On other platforms, the packages specified might not
be available or dependencies might be missing for some of the key packages
already in the spec.

NOTE: Conda does not check architecture or dependencies when installing 
from an explicit specification file. To ensure the packages work correctly,
be sure that the file was created from a working environment and that it is 
used on the same architecture, operating system and platform, such as linux-
64 or osx-64.

在一个平台(例如CentOS)和另一个平台(例如Windows)之间是否有共享和重新创建conda环境的好方法?


问题答案:

回答

假设您要确保通常关心的相同版本的软件包位于不同的平台上,并且不必关心整个依赖树中 所有 软件包的完全相同的版本,则给出此答案。
。如果您试图在整个依赖项树中安装所有软件包的完全相同版本,那么由于失败的可能性很大,因为某些conda软件包对osx / win /
linux的依赖项不同。例如,otrobopt的配方 将在Win vs. osx /
linux上安装不同的软件包,因此环境列表将有所不同。


建议:手动创建一个environment.yaml文件,并仅指定或固定您关心的依赖项。
让conda解算器完成其余的工作。可能值得注意的是conda- env(用于管理conda环境的工具)明确建议您“始终手动创建您的environment.yml文件”。

那你就做 conda env create --file environment.yml

看看conda-env的自述文件 。

它们可能非常简单:

name: basic_analysis
dependencies:
  - numpy
  - pandas

或更复杂的情况是,您需要固定依赖项并指定anaconda.org频道以从以下位置进行安装:

name: stats-web
channels:
  - javascript
dependencies:
  - python=3.4   # or 2.7 if you are feeling nostalgic
  - bokeh=0.9.2
  - numpy=1.9.*
  - nodejs=0.10.*
  - flask
  - pip:
    - Flask-Testing

无论哪种情况,您都可以使用 conda env create --file environment.yaml

如果您有更复杂的用例或其他问题,请更新原始问题,我将为您提供更多帮助。



 类似资料:
  • 问题内容: 简而言之:在iPhone和Android版本之间共享/重用代码的最有效方法是什么? 我认为最常见的两种情况是: 空白计划新项目,提前知道每个设备上都需要运行大量可重用的逻辑。 现有的iPhone代码库,可将C,C ++和Objective-C移植到Android NDK或其他方式。 当然,在完美的世界中,所有应用程序都只会插入神奇的云中,而所有可重用的逻辑都将出现在Google App

  • 问题内容: 对于Windows,我的Node脚本应如下所示: 但是在Linux上没有,所以会像这样: 有没有办法以一致且跨平台的方式声明环境变量? 问题答案: 我最近遇到了跨环境项目。这很简单 这会将环境变量设置为,而不管操作系统是什么。

  • 多平台支持 Mpx支持在多个小程序平台中进行增强,目前支持的小程序平台包括微信,支付宝,百度,qq和头条,不过自2.0版本后,Mpx支持了以微信增强语法为base的跨平台输出,实现了一套业务源码在多端输出运行的能力,大大提升了多小程序平台业务的开发效率,详情可以查看template增强特性 不同平台上的模板增强指令按照平台的指令风格进行设计,文档和代码示例为了方便统一采用微信小程序下的书写方式。

  • 直到最近,我还认为WCF服务仅限于.NET(即只能从.NET应用程序访问),因为它们公开了一个.NET对象,使用者在该对象上调用方法(然后当然在服务器上运行)。 然后我读到WCF服务是跨平台的;即可以从多种平台访问,而不仅仅是.NET。

  • 我正在使用SpringBoot1.4开发一些Spring应用程序。1和spring boot starter与ELEAF的依赖关系。我希望在我的Web服务器上共享我的ThymileAF模板(例如页眉和页脚),以便能够将它们包含在我的应用程序中。实现这一点的最简单方法是在我的每个应用程序中包含指向我的模板的服务器根相对链接。这样,我的应用程序将是可移植的,我可以让它在我的所有环境(开发、测试、产品)

  • 问题内容: 您可能知道,Mac OS X中保存的快捷方式是 Windows ,而关闭应用程序的快捷方式是 Windows 。但是问题是如何在Java应用程序中执行这些操作?我是否需要查找我在应用程序中使用的所有快捷方式,并根据不同的操作系统来匹配相关功能?有什么建议吗?谢谢。 问题答案: 该方法在这种情况下很有用。该方法在Windows上返回时,在Mac OS X上返回。所得的掩码可用于构造菜单项