0

我正在编写一个 Python 脚本,该脚本将被不同操作系统上的多人使用,并且我试图找出包含第三方包的最佳方法,以便用户在运行之前不必自己安装包脚本。我正在使用的特定库是Requests包。当我通过 pip 安装它时,它对我很有用,但是当我下载源代码并尝试从我的项目根目录导入它时,它不起作用。根据我尝试导入它的方式,我要么得到“尝试在非包中进行相对导入”,要么得到“没有名为 MyProject.request 的模块”。

所以我想我的第一个问题是,我是否接近这个权利?我从来没有为比我自己更多的用户编写过 python 脚本,所以我从来没有关心过像包安装这样的问题。包含请求库的源并将其导入到我的项目的正确方法是正确的,还是有更简单的方法?

作为一个后续问题,如果我走在正确的轨道上,那么在我的项目中包含这个包的正确程序是什么?现在我的文件结构是这样的:

MyProject/
    __init__.py
    main.py
    requests/
        requests/
            __init__.py
            [bunch of other stuff]
        [other files/folders]

在 main.py 中,我尝试了from .MyProject.requests import requestsand from .requests import requests,并且都给了我“尝试在非包中进行相对导入”。我还没有弄乱 sys.path ,但我看到了关于这是否是“正确”的方法的混合建议。我主要关心的是让这个脚本在用户机器上运行,除了运行它之外,他们不需要做任何事情。我不希望用户必须安装外部包,但我似乎无法通过尝试导入源来使其工作。

4

1 回答 1

0

根据 Evert 的回应,我的问题似乎是多个“请求”目录。当我向上移动子目录并从 Requests 源中删除多余的文件/目录时,它运行良好。

于 2013-10-08T16:59:02.460 回答