我有一个python脚本,它将由系统python执行(在OSX /usr/bin/python
上)。此脚本使用外部包(在我的情况下为PyYaml)。
如何在没有pip
的情况下提供包 - 将其安装到系统python中。我也不想为这个脚本创建一个虚拟环境,因为该脚本也可以在其他“vanilla”OSX机器上运行。
我正在考虑在脚本所在的同一路径下创建一个目录,并在那里“转储”外部包。但是以什么形式?我在脚本中需要做什么,以便它“看到”本地转储的包?只需修改sys.path
?
答案 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。因此,我将此增强功能添加为单独的答案。