我想为我的项目提供我的python包以避免sys. path。我的toml文件和lib-folder文件夹在同一个层次结构中。我想提供“my_package”作为软件包。我沿着都在使用pyenv作为虚拟环境。它与诗歌结合在一起工作,没有任何问题。但是,当我运行poetry install
命令时,我收到错误:Directory /Users/<user>/<repo_name>/lib/my_package for my-package does not seem to be a Python package
的值。
这是我的pyproject的内容。toml:
[tool.poetry]
...
packages = [{ include = "my_package", from = "lib" },]
[tool.poetry.dev-dependencies]
...
my-package = { path = "./lib/my_package/", develop = true }
字符串
文件夹结构如下:
./lib
└── my_package
├── __init__.py
├── file1.py
└── file2.py
pyproject.toml
型
我已经尝试了所有的变化,重命名我的包,避免连字符和下划线。我也曾经把包从“lib”中拿出来过一次,所以它应该被诗歌直接认定为默认。都没有成功。我也关注了this thread,不幸的是,我没有得到同样的积极结果。我的虚拟环境已启动。我还完全删除了我的toml文件,并创建了一个新的。
2条答案
按热度按时间3yhwsihp1#
您可以尝试以下步骤
要使你的Python包在Poetry环境中可用,你需要遵循以下步骤:
初始化诗歌:如果您还没有初始化Poetry,请从初始化Poetry开始。在项目的根目录中打开终端或命令提示符,然后运行以下命令:
字符串
这将指导您创建一个保存项目配置的pyproject.toml文件。
组织您的包裹:确保Python包遵循标准目录结构。至少,它应该包含一个有效的Python包和一个init.py文件。举例来说:
型
定义相关性:在Poetry生成的pyproject.toml文件中,需要指定包的依赖项。使用[tool.poetry.dependencies]部分列出所需的软件包沿着版本。举例来说:
型
添加您的包:由于您希望包含自己的包,因此需要在Poetry中将其作为本地包引用。在pyproject.toml中,使用[tool.poetry.dependencies]部分指定包目录的路径。举例来说:
型
将./path/to/your/package替换为pyproject.toml文件的包目录的实际路径。
安装依赖项:运行以下命令,在Poetry环境中安装包及其依赖项:
型
激活虚拟环境(可选,但建议使用):建议激活Poetry虚拟环境,以便在隔离环境中使用已安装的软件包及其依赖项。
型
使用您的套餐:现在您的包在Poetry环境中可用,您可以像使用任何其他包一样在Python代码中导入和使用它。通过遵循这些步骤,您应该已经成功地使您的Python包在Poetry环境中可用。请记住,无论何时对包或其依赖项进行更改,都应该再次运行poetry install来更新环境。
gcuhipw92#
删除以下行:
字符串
您的软件包不是其自身的依赖项。它是 * 由
pyproject.toml
* 定义的程序包。