【问题标题】:How to import libraries from source code in python?如何从python中的源代码导入库?
【发布时间】:2013-01-05 03:10:05
【问题描述】:

我正在尝试编写一个 python 脚本,我可以轻松地将其导出给朋友而不会出现依赖问题,但我不知道该怎么做。具体来说,我的脚本依赖于 BeautifulSoup 的代码,但与其强迫朋友必须安装 BeautifulSoup,我宁愿将 BeautifulSoup 的 src 打包到我的项目文件中的 Libraries/ 文件夹中,然后从那里调用函数。但是,我不能再简单地“导入 bs4”。这样做的正确方法是什么?

谢谢!

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

    一种常见的方法是将requirements file 与项目一起发布,指定需要哪个版本的库。这个文件(按照惯例)通常命名为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 项目,有一个需求文件:

    这种方法的好处是您可以自动解决传递依赖关系。此外,如果您使用 virtualenv,您将完全分离您的项目并避免库版本冲突。

    【讨论】:

    • 什么是 >=?,还有用于保存当前需求的命令 pip freeze > requirements.txt,可能很有用。
    • @DrewV,我在==>= 上添加了一个简短的注释。
    • 这很有帮助。非常感谢所有发帖的人!
    【解决方案2】:

    您必须先add Libraries/ (converted to an absolute path first) to sys.path,然后才能尝试在其下导入任何内容。

    【讨论】:

      猜你喜欢
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-30
      相关资源
      最近更新 更多