沿clyngor安装clago二进制程序

clyngor-with-clingo的Python项目详细描述


CLYNGOR和CLINGO

这是一个python包,沿着clyngor package安装一个clago二进制文件, 所以最终用户不必关心cligo的安装

cligo二进制文件在the official release page

安装

当有人(不理解“在您的路径中安装clyngor binary”)必须安装clyngor时,请给他们换行:

pip install clyngor-with-clingo

clingo可执行文件将出现在它们的bin中。如果所述人员在系统级工作,则可能需要根访问权限。

维护

必须更新包才能使用新的cligo二进制文件。

  • 脚本retrieve-clingo.sh <clingo version>将自动检索给定的clago版本。
  • 脚本put-clingo-version.sh <clingo version>将自动将给定的clago版本推送到包中。

使用zest.releaser上载新版本;注意将clago版本与包版本匹配

如何执行此魔术

目前的解决方案是:将cligo伪装成python脚本

Link to the way of doing that。谢谢!

我最终会reproducing the same entry point implementation, using pkg_resource,它起作用: 二进制文件是使用MANIFEST.in嵌入到包中的,并且包只是真正的操作 将命令行参数委托给正确的clago二进制文件。

这似乎有效,但是:

  • 用户无法控制已安装的二进制文件(但该软件包完全是为了让用户不必处理该问题,但仍然…有经验的用户永远不应该使用它)
  • 这3个二进制文件将发送给用户,并在执行时进行选择。

动态解决方案:破解安装工具,以便在安装时下载二进制文件

pyasp使用的方法

有很多缺点,比如从客户端下载二进制文件,需要使用--no-cache-dirpip标志来强制pip执行黑客攻击

正确但不起作用的解决方案:在python包中嵌入特定于平台的二进制文件

包中的python部分非常简单(这个包中可能有nopython), 是we still need a basic architecture

平台特定魔术

Setuptools提供自PEP 508环境标记以来, 理论上usable in setup.cfg 使用setuptools

[options.data_files]
bin/clingo =
    bin/linux/clingo; platform_system=="Linux"
    bin/macos/clingo; platform_system=="Darwin"
    bin/win/clingo.exe; platform_system=="Windows"

但它不起作用。A question has been asked about it,还有on SO

可能是因为数据文件不支持环境标记。因此,这一解决办法被放弃了。

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

推荐PyPI第三方库


热门话题
java如何在数据库中插入行时自动发送电子邮件?   从进程输出读取的Java问题   java质疑StyledDocument和JTextPane之间的关系,以及接口的正确使用   java错误getPlayer(args[0]);   java如何使Spring引导在重新打包的WAR中包含清单文件?   Java中的除法与模   java使用2d数组和JfreeChart制作散点图   java扩展SonarQube FindBugs插件和自定义FindBugs插件   javaspring:hibernate+ehcache   具有不正确的equals和HashCode实现的java HashMap   java Jaspersoft报告网。旧金山。jasperreports。发动机例外:net。旧金山。jasperreports。发动机填满JRepressionEvalException:计算表达式时出错   java如果输入与其变量不匹配,如何添加错误   在java中使用简单数组[]实现队列   无法启动上下文路径/hsx上的java FAIL应用程序