繁体   English   中英

基于打包(setup.py)的另一个文件的函数导入导致“找不到 .egg-info 目录”

[英]Function import from another file based on packaging (setup.py) leads to "No .egg-info directory found"

我的目标是从 dnn.py 中的文件 utils.py 访问一个名为 train_test_split(...) 的函数。 我的结构如下:

├───MachineLearning
│   └───src
│       ├───deep_learning
|           └─── dnn.py
|           └─── __init__.py
│       └───utils
|           └─── preprocessing.py
|           └─── __init__.py
│   └───readme.md
│   └───setup.py

我不想使用或更改我的 Windows 路径,因为它也应该在从我的 github 克隆的其他计算机上运行。 我找到的解决方案是使用 setup.py 文件。 我花了很长时间试图理解它是如何工作的,最终得到了上面的结构。 我的 setup.py 文件包含以下内容:

from setuptools import setup, find_packages

setup(
    name='example',
    version='0.1.0',
    packages=find_packages()
)

现在,当我运行pip install -e . 从根文件夹(MachineLearning)我收到以下错误:

(tf38_clone) F:\Code\MachineLearning>pip install -e .          
Obtaining file:///F:/Code/MachineLearning
  Preparing metadata (setup.py) ... done
ERROR: No .egg-info directory found in C:\Users\Nick\AppData\Local\Temp\pip-pip-egg-info-pvq_am4y

有人能指出我正确的方向吗? 我唯一想要的是将我的函数导入到另一个 .py 文件中,如上所述。

如果你的

目标是从 dnn.py 中的文件 utils.py 访问一个名为 train_test_split(...) 的函数

你也用文字表示

我唯一想要的是将我的函数导入到另一个 .py 文件中,如上所述。

那么你应该尝试from utils import train_test_split在一开始你dnn.py从其他模块导入的功能。 无需为此用例创建包。 可以在此处找到有关 Python 中模块的更多信息。

然而,如果你想安装一个可编辑的包,你需要先构建一个(即python -m build ),它会在你的*.egg-info创建*.egg-info 您可以在此处阅读有关包装的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM