使用脚本中的Python包而不安装它

时间:2017-03-07 00:11:08

标签: python pip packages

我有一个python脚本,它将由系统python执行(在OSX /usr/bin/python上)。此脚本使用外部包(在我的情况下为PyYaml)。

如何在没有pip的情况下提供包 - 将其安装到系统python中。我也不想为这个脚本创建一个虚拟环境,因为该脚本也可以在其他“vanilla”OSX机器上运行。

我正在考虑在脚本所在的同一路径下创建一个目录,并在那里“转储”外部包。但是以什么形式?我在脚本中需要做什么,以便它“看到”本地转储的包?只需修改sys.path

2 个答案:

答案 0 :(得分:0)

您可以将pyYaml的*.py文件复制到您的脚本目录中,然后像导入自己的模块一样导入它们。这不是最美丽的解决方案,但它有效 如果你打算使用C后端,那就更难了。您需要确保安装程序正确编译它们,或者使用已编译的C模块进行与平台相关的分发。但那些是速度和纯Python代码就足够了。

答案 1 :(得分:0)

作为Synedraacus answer的增强功能:(*)

您可以将PyYAML的整个yaml子目录复制到您的脚本目录中(如果您使用Python 2,那么它位于PyYAML zip文件lib/yaml中,而Python 3中使用lib3/yaml)。然后,您可以在代码中使用它,就像安装了PyYaml pip一样。只需写下:

import yaml

当然,只有当您不想使用C后端时才能正常工作。

(*)我尝试将这个细节添加到Synedraacus的答案,但我的编辑got rejected。因此,我将此增强功能添加为单独的答案。