我正在尝试将一个开源库移植到Python 3.(SymPy,如果有人想知道的话.)
所以,我需要2to3
在为Python 3构建时自动运行.为此,我需要使用distribute
.因此,我需要移植当前系统(根据doctest)distutils
.
不幸的是,我不知道什么是这些模块-之间的区别distutils
,distribute
,setuptools
.文档是最好的粗略,因为它们似乎都是彼此的分支,旨在在大多数情况下兼容(但实际上,不是全部)......等等.
有人可以解释这些差异吗?我应该用什么?什么是最现代的解决方案?(Distribute
顺便说一句,我也很欣赏一些关于移植的指南,但这有点超出了问题的范围......)
有没有办法强制maven(2.0.9)在一个jar文件中包含所有依赖项?
我将一个项目构建到一个jar文件中.我希望将依赖项中的类复制到jar中.
更新:我知道我不能在jar文件中包含一个jar文件.我正在寻找一种方法来解压缩指定为依赖项的jar,并将类文件打包到我的jar中.
我以为我听说py2exe能够做到这一点,但我从未弄明白.有没有人成功完成这个?我可以看到你的setup.py文件,以及你使用的命令行选项吗?
基本上我正在考虑给它一个可执行文件,它可以像解压缩/ temp和运行一样.
我希望能够嵌入一个Haskell解释器,hint
这样我就可以在Haskell中编写插件来与我的程序一起使用.我不想为我的可执行文件发布整个Haskell平台.
通常,Haskell可执行文件是非常独立的.例如,擦除PATH
不会导致问题:
$ PATH=. Hello
Hello world
Run Code Online (Sandbox Code Playgroud)
但是,runInterpreter
如果我删除了一个简单的测试程序使用炸弹PATH
:
$ PATH=. TryHint
GhcException "panic! (the 'impossible' happened)\n (GHC version 7.8.3 for x86_64-apple-darwin):\n\tDynamic linker not initialised\n\nPlease report this as a GHC bug: http://www.haskell.org/ghc/reportabug\n"
Run Code Online (Sandbox Code Playgroud)
环境中必须提供哪些库或可执行文件才能使其工作?
otool
没有提供太多指导:
otool -L TryHint
TryHint:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
/usr/local/lib/libgmp.10.dylib (compatibility version 13.0.0, current version 13.0.0)
Run Code Online (Sandbox Code Playgroud)
测试代码TryHint
没有做太多:
import Control.Monad
import Language.Haskell.Interpreter
main = do
f <- runInterpreter …
Run Code Online (Sandbox Code Playgroud) Python就可以用于打包和描述项目的工具,一个令人困惑的历史:这些包括distutils
标准库中,distribute
,distutils2
,和setuptools
(也许更多).看来,distribute
和distutils2
赞成被中止setuptools
,这让两个相互竞争的标准.
据我所知,setuptools
提供了更多的选项(例如声明依赖项,测试等)distutils
,但它没有包含在Python标准库中(但是?).
所述的Python包装用户指南 [ 1 ]现在建议:
使用
setuptools
定义的项目和创建源代码分发.
并解释说:
尽管您可以
distutils
在许多项目中使用pure ,但它不支持在其他项目上定义依赖项,并且缺少一些便于实际自动填充包提供的包元数据的便利实用程序setuptools
.作为标准库之外,setuptools还在不同版本的Python中提供更一致的功能集,并且(不同distutils
)setuptools
将更新以在所有支持的版本上生成即将推出的"Metadata 2.0"标准格式.即使是那些选择使用的项目
distutils
,当pip直接从源代码安装这样的项目时(而不是从预先构建的wheel文件安装),它实际上会使用setuptools
而不是使用它来构建项目.
但是,查看各种项目的setup.py文件会发现这似乎不是一个真正的标准.许多软件包仍在使用,distutils
而那些支持setuptools
经常混合setuptools
使用,distutils
例如通过执行后备导入:
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
Run Code Online (Sandbox Code Playgroud)
接着尝试找到一种方法来编写可由两者setuptools
和两者安装的设置distutils
.这通常包括各种容易出错的依赖性检查方法,因为distutils
它不支持setup函数中的依赖性.
为什么人们仍然需要额外的努力来支持distutils
- 事实setuptools
是标准库不是唯一的原因吗? …
我想制作一个包含一些Cython代码的Python包.我已经很好地运行了Cython代码.但是,现在我想知道如何最好地打包它.
对于大多数只想安装软件包的人来说,我想要包含.c
Cython创建的文件,并安排setup.py
编译它以生成模块.然后用户不需要安装Cython来安装软件包.
但对于谁可能要修改包的人,我也想提供用Cython .pyx
文件,并以某种方式也允许setup.py
使用用Cython编译它们(因此这些用户将需要安装用Cython).
我应该如何构建包中的文件以满足这两种情况?
在用Cython文档提供了一些指导.但它没有说明如何制作一个单独setup.py
处理有/无Cython情况.
我有一个程序的源代码(取自cvs/svn/git/...),我想为它构建一个Debian/Ubuntu包.包存在于存储库中,但是:
这样做最简单的方法是什么?我关心的是一些事情
我对Python中的egg文件有疑问.
我有很多由代码组织的Python代码,我正在尝试创建egg文件.我正在遵循指示,但它们很常见.
根据它,似乎我需要一个setup.py文件.
java -jar <jar file>
呢?我写了一个脚本,可以帮助Windows用户进行日常生活.我想简单地向她发送.exe而不是要求她安装python,dll或者必须处理任何其他文件.
我已经阅读了很多关于将Python脚本编译成可执行文件的stackoverflow条目.我有点困惑,因为有很多选择,但有些似乎过时了(自2008年以来没有更新),没有一个对我来说不够简单,因为我花了几个小时就没有问过这个问题.
我希望有更好的,最新的方式来做到这一点.
我调查了一下:
但要么我不能让他们工作或无法理解如何得到我需要的结果.我得到的最接近的是py2exe,但它仍然给了我MSVCR71.dll
我希望得到一步一步的答案,因为我也无法遵循这里的一些调整答案,这些答案需要事先了解如何使用py2exe或其他一些工具.
我正在使用Python 2.5,因为其中一个模块仅适用于该版本.
我是Node.js编程的新手,我最近使用(快速,主干和其他免费视图技术,使用mongoDB)创建了一个示例工作Web应用程序.现在,我想要在暂存环境中部署相同的内容,我不知道如何打包此应用程序并分发相同的内容.[我可以照顾mongoDb并单独设置]
我来自Java世界,在那里我们为可重用的libs和用于Web应用程序的war/ear包创建jar,它们部署在servlet容器中.现在在这种情况下,因为node.js本身也充当了Web容器,我如何打包我的webapp?
PS:截至目前,我正在考虑手动将所有必需的源文件复制到登台环境中,并运行npm命令下载该计算机上的所有依赖项,然后使用"forever"或其他一些机制来运行我的server.js.(另外,添加某种监控,以防app崩溃并永远失败)我不确定这是不是正确的方法?我相信必须有一些标准化的方法来解决这个问题.