我正在尝试编写一个 python 脚本,我可以轻松地将其导出给朋友而不会出现依赖问题,但不知道该怎么做。具体来说,我的脚本依赖于 BeautifulSoup 的代码,但与其强迫朋友必须安装 BeautifulSoup,我宁愿将 BeautifulSoup 的 src 打包到我的项目文件中的 Libraries/ 文件夹中,然后从那里调用函数。但是,我不能再简单地“导入 bs4”。这样做的正确方法是什么?
谢谢!
我正在尝试编写一个 python 脚本,我可以轻松地将其导出给朋友而不会出现依赖问题,但不知道该怎么做。具体来说,我的脚本依赖于 BeautifulSoup 的代码,但与其强迫朋友必须安装 BeautifulSoup,我宁愿将 BeautifulSoup 的 src 打包到我的项目文件中的 Libraries/ 文件夹中,然后从那里调用函数。但是,我不能再简单地“导入 bs4”。这样做的正确方法是什么?
谢谢!
一种常见的方法是随项目一起提供需求文件,指定需要哪个版本的库。这个文件(按照惯例)通常被命名requirements.txt
并且看起来像这样:
MyApp
BeautifulSoup==3.2.1
SomeOtherLib==0.9.4
YetAnother>=0.2
(上面的虚构文件说:我需要 BeautifulSoup 3.2.1、SomeOtherLib 0.9.4 和任何大于或等于 0.2 的 YetAnother 版本)。
然后这个项目的用户可以简单地带你图书馆,(创建一个virtualenv)并运行
$ pip install -r requirements.txt
然后它将获取所有库并使它们在系统范围或项目范围内可用(如果使用 virtualenv)。这是 github 上的一个随机 python 项目,有一个需求文件:
The nice thing about this approach is that you'll get your transitive dependencies resolved automatically. Also, if you use virtualenv, you'll get a clean separation of your projects and avoid library version collisions.
在尝试在其下导入任何内容之前,您必须添加Libraries/
(首先转换为绝对路径) 。sys.path