有没有一种方法可以将我的脚本变成一个库,这样就不必从特定路径导入?

问题描述 投票:1回答:1

我有Python脚本,其中包含许多程序中的许多其他脚本和代码所使用的功能。他们使用import来完成。

今天,我正尝试从其他目录导入,并首先尝试这样做

from .etc.mycodes.helper_functions import graph

所以我尝试了类似的东西

import sys
sys.path.insert(1, '/etc/mycodes/helper_functions')
import graph

而且它也不起作用。

我想知道是否有更好的方法,是否有可能使我的helper_functions成为某种类型的库,所以我不必指定指向它的路径,而是将其设置为环境变量。

python python-3.x
1个回答
2
投票
将您的my_helper_functions设置为Python package

创建包文件

您现在将创建一些文件来打包该项目,然后准备分发。创建下面列出的新文件-您将在以下步骤中向他们添加内容。

packaging_tutorial/ example_pkg/ __init__.py tests/ setup.py LICENSE README.md

那么你就可以

$ cd my_helper_functions
$ pip install .

将其安装到您的Python环境中。

然后输入您的代码

from my_helper_functions import my_awesome_util

不需要设置任何路径。


1
投票
packaging/ setup.py your_code/ __init__.py

我们的初始setup.py也将包含有关许可证的信息,并将将README.txt文件重新用于long_description字段。看起来像:

from distutils.core import setup

setup(
    name='mycode',
    version='0.1dev',
    packages=['mycode',],
)

要创建发行版,您的源代码需要打包到一个存档文件中。这可以通过sdist命令完成:

$ python setup.py sdist

这将在您的项目中创建一个dist子目录,并将所有项目的源代码文件包装到一个分发文件中,该文件是以下形式的压缩存档文件:

mycode-0.1.tar.gz

希望这会有所帮助


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.