如何使用 `conda` 将本地文件夹安装为包? (另一个相对进口问题)

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

高级问题

我尝试/测试我在“游乐场脚本”中编写的Python代码。

通常我不会保留这些游乐场脚本,但最近我发现保存它们以供长期使用有一些价值。所以我决定创建一个单独的

问题设置

我有一个处于活动状态的 conda 环境

myproject

我的工作文件夹如下所示:

~/x
  __init__.py
  something.py

  ~/x/playground
    playscript.py

我想将

something.py
导入到
playscript.py
中。我使用 Jupyter 将
playscript.py
作为交互式窗口运行。

如果我尝试相对导入

something.py
,则会失败:

{
    "name": "ImportError",
    "message": "attempted relative import with no known parent package",
    "stack": "---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
File ~/x/playground/playscript.py:1
----> 1 from .. import something

ImportError: attempted relative import with no known parent package"
}

conda develop
(截至 2024 年 6 月)不是解决方案:弃用或删除 condadevelopment。读完这篇文章后,似乎有很多人建议:

pip install --no-build-isolation --no-deps -e .

问题

假设我对

~/x/something.py
进行更改,或者添加全新的模块...我需要再次
pip install --no-build-isolation --no-deps -e .
吗?如果是这样,那么这不是一个好的解决方案。

相关问题

另请参阅相关内容:“开发”模式?第695章

python conda python-packaging conda-forge mamba
1个回答
0
投票

部分解决方案

(有些东西仍然不起作用,因为我的自动完成功能找不到相关模块,也无法以交互模式导入它)

建议的

pip
命令上的相关标志是
-e
https://stackoverflow.com/a/35064498/3486684

请注意,必须在

pyproject.toml
下创建一个简单的
~/x

[project]
name = "x"
authors = [{ name = "Your Name", email = "[email protected]" }]
version = "0.1.0"
requires-python = ">=3.11"
dependencies = []

[project.optional-dependencies]
dev = []

否则,

pip
会抱怨周围没有
setup.py
pyproject.toml

© www.soinside.com 2019 - 2024. All rights reserved.