快速环境求解器

mungo的Python项目详细描述


芒果

重要警告mungo是实验性的,事情很有可能会破裂。

mungo作为conda createconda install的替换- 但是有更快的环境分辨率。 速度的提高是通过使用线性规划来实现的 对中间结果的SAT求解和缓存(有关详细信息,请参阅“ILP”)。

注意,我们不想取代conda,我们只想分享我们的解决方案,以便对其进行测试,也许 总有一天会融入康达。

注意事项

  • mungo只公开基本功能:
    • install (package_spec)+ (--name NAME)? (--channel CHANNEL)* (--file FILE)?
    • create  (package_spec)* (--name NAME)? (--channel CHANNEL)* (--file FILE)?
  • mungo的解决方案将{em1}$not与conda的相同。
  • mungo无法处理自定义频道URL。不过,任何有repodata.json.bz2文件的频道都可以从https://conda.anaconda.org/CHANNEL/ARCH获得。
  • mungo只从~/.condarc读取通道(当然,如果提供了,也使用--channel参数)。
  • mungo目前只支持linux。

安装

由于实际的软件包安装是 委托给康达。

来自PIP

pip install mungo

示例

# create an environment named 'foo' with the specified packages
mungo create -n foo "python>=3.7" pulp packaging pyyaml

# create an environment from an environment file (such as mungo.yml)
mungo create --file mungo.yml

# install packages into the current environment
mungo install bwa

# install packages into a different environment
mungo install -n foo bwa

ILP

^ {EM1}$MunG.EEM>使用整数线性程序来确定兼容的包的配置,最大化版本号,同时还保持信道顺序。

alt text

合并后,为每个p-节点创建ilp变量∈{0,1}。这些变量与(package, version)配置相关,并告诉我们是否选择要安装的配置(1)(0)。 在第二步中,从上面定义的约束节点生成以下ILP约束: 对于每个父级p(变量),所有子级(变量)C的总和必须大于或等于p;换句话说:如果选择p,则还必须至少选择每个依赖包的一个可用版本。如果pnot选择用于安装(即p = 0),则其依赖项的安装状态不相关(对于p)。

alt text

alt text

更改日志

  • 版本0.1.4:显示更新/降级/安装的包。
  • 版本0.1.3:将频道优先于版本号。添加'-y/--yes'标志以跳过包安装确认。
  • 版本0.1.0:初始版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将Scanner对象作为构造函数参数传递给UserInterface类   spring未能启动bean“subtocolWebSocketHandler”;嵌套的例外是java。lang.IllegalArgumentException:没有处理程序   Java EE应用程序中后台服务的多线程Java线程(设置守护进程和优先级)?   java Pull to refresh返回列表的第一个位置   无法将comparator类转换为java。可比的   java将json从servlet传递到dojo   JavaHibernate:将子类实例转换为超类实例   java警告调用servlet类时非法反射访问   java静态变量值   java@Entity和@embeddeble之间有什么区别   java将作业配置导入公共作业配置类(注释配置)   sql公共表表达式(以values语句开头)在java中给出错误   java在ImageJ中使用ImageProcessor   java PostgreSQL executeBatch()会随着时间的推移而变慢   java在安卓中以表格形式排列sqllite表数据?   java中SVG的swing定制呈现   java删除与另一个实体映射的实体   java何时/如何添加ListView适配器,使用back按钮恢复它?(片段)   java为什么IBinder和Binder之间的类型转换不是非法的?   java在方法参数列表中使用ArrayList或List