我最近开始学习Python,我对如何分发和安装软件包感到困惑。
我了解安装软件包的官方方式是 distutils :您下载源tarball,解压缩并运行:python setup.py install
,然后模块将自动安装
我也知道 setuptools ,它附带easy_install
帮助程序脚本。它使用 eggs 进行分发,根据我的理解,它构建在distutils之上并执行与上面相同的操作,并且它处理所需的所有依赖项,所有依赖于PyPi
然后还有 pip ,我仍然不确定它与其他人的区别。
最后,由于我在Windows机器上,许多软件包还通过 Windows安装程序提供二进制构建,特别是那些需要编译C / Fortran代码的软件包,否则这将是一场噩梦在Windows上手动编译(假设你有MSVC或MinGW / Cygwin开发环境,并设置了所有必要的库..尽管如此,尝试自己构建numpy或scipy,你会明白的!)
所以有人可以帮助我理解这一切,并解释每种方法的差异,优点/缺点。我想知道每个人如何跟踪包(Windows注册表,配置文件,...)。特别是,您将如何管理所有第三方库(能够列出已安装的软件包,禁用/卸载等)。
答案 0 :(得分:11)
我使用pip,而不是在Windows上,所以我无法提供与Windows安装程序选项的比较,只是有关pip的一些信息:
您可能还想了解其他几个项目(是的,还有更多!):
希望所有这些都有助于澄清一些事情!祝你好运。
答案 1 :(得分:0)
我使用windows和python。这有点令人沮丧,因为pip并不总是能够安装东西。 Python正在转向pip,所以我仍然使用它。 Pip很不错,因为您可以卸载项目并使用
pip freeze > requirements.txt
pip install -r requirements.txt
我喜欢pip的另一个原因是像venv和python 3.4这样的虚拟环境。我发现在windows上使用venv比使用virtualenv更容易。
如果您无法安装软件包,则必须为其找到二进制文件。 http://www.lfd.uci.edu/~gohlke/pythonlibs/
我发现这些二进制文件非常有用。
Pip正在尝试为二进制安装制作一种称为轮子的东西。
pip install wheel
wheel convert path\to\binary.exe
pip install converted_wheel.whl
您还必须为未安装且该软件包所需的任何所需库执行此操作。