Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 创建只供本地使用的包(Python)_Python 3.x - Fatal编程技术网

Python 3.x 创建只供本地使用的包(Python)

Python 3.x 创建只供本地使用的包(Python),python-3.x,Python 3.x,所以我想创建一个包,我可以在本地机器上的任何地方访问它(使用import),而无需将它上传到像PyPI这样的包存储库中 我这样做的原因是:我想创建一个API来访问公司中的数据。由于提供的数据通常没有经过处理,我通常会重复同样的过程,为各种工作(即席、仪表板等)清理和创建数据帧 为此,我创建了一个本地包,其中包含一个API类,自动检索数据,进行适当的处理,并返回一个pandas.DataFrame。包结构如下所示 /pkg /pkg __init__.py main.py 当

所以我想创建一个包,我可以在本地机器上的任何地方访问它(使用
import
),而无需将它上传到像PyPI这样的包存储库中

我这样做的原因是:我想创建一个API来访问公司中的数据。由于提供的数据通常没有经过处理,我通常会重复同样的过程,为各种工作(即席、仪表板等)清理和创建数据帧

为此,我创建了一个本地包,其中包含一个
API
类,自动检索数据,进行适当的处理,并返回一个
pandas.DataFrame
。包结构如下所示

/pkg
  /pkg
    __init__.py
    main.py
当在目录中使用时,该包可以正常工作

此时,为了让我能够访问在
main.py
中创建的类,我使用了
setuptools
,按照简单的说明创建了一个控制盘文件

我通过运行
pip install dist\pkg-0.0.1-py3-none-any.whl
使用
pip
安装了我的软件包。尤里卡,真管用

我甚至使用了
pip-freeze
进行了双重检查,我制作的软件包显示在那里(
pkg==0.0.1

但是,当我尝试在其他目录上使用它时,
import-pkg
无法按预期工作(返回一个
ModuleNotFoundError


我不打算将wheel文件上传到PyPI(正如我所提到的,我只打算在公司内部将其用作API来访问数据进行分析)。我肯定我在这里遗漏了一些东西,我不确定这是什么,因为这是我第一次真正创建这样的包。我如何正确地做到这一点?(或者有其他建议吗?

如果应该在内部使用,为什么不将文件附加到任何项目文件夹并导入?@GRoutar,因为将文件附加到我拥有的每个项目是多余的。这与将相同的代码复制粘贴到不同项目目录上的脚本没有什么不同。请尝试在父pkg文件夹中添加一个
\uuuu init\uuuu.py
文件。另外,请确保将文件夹路径添加到$PYTHONPATH。@gpk27我曾想过只将文件夹路径添加到$PYTHONPATH,但由于这是一台工作笔记本电脑,更改环境变量将需要我完成对其请求权限的整个过程,等等。。。创建一个轮子文件,我认为是一个不错的选择,特别是如果组织中有其他人可以使用相同的包如果它应该在内部使用,为什么不将文件附加到任何项目文件夹并导入?@GRoutar,因为将文件附加到我拥有的每个项目是多余的。这与将相同的代码复制粘贴到不同项目目录上的脚本没有什么不同。请尝试在父pkg文件夹中添加一个
\uuuu init\uuuu.py
文件。另外,请确保将文件夹路径添加到$PYTHONPATH。@gpk27我曾想过只将文件夹路径添加到$PYTHONPATH,但由于这是一台工作笔记本电脑,更改环境变量将需要我完成对其请求权限的整个过程,等等。。。创建一个轮子文件,我认为是一个不错的选择,特别是如果组织中有其他人可以使用相同的包