一个模块可以是 运行 并且来自另一个不是其父文件夹的选项 -m 吗?
Can a module be run with option -m from another folder which is not its parent?
当 运行 连接 Python 模块(在包内)时,我总是使用父文件夹中的选项 -m。
假设我们有以下文件目录:
folder-that-contains-root-project-folder/
root-project-folder/
package/
__init__.py
module.py
venv/
我总是运行module.py从文件夹root-project-folder
作为python -m package.module
并且有效。
但是我怎么能从folder-that-contains-root-project-folder
运行module.py呢?到目前为止我尝试的是 python -m root-project-folder/package.module
但它不起作用。
编辑: 运行ning from folder-that-contains-root-project-folder
时的错误是:
/home/eduardo/Desktop/folder-that-contains-root-project-folder/root-project-folder/venv/bin/python:
Error while finding module specification for
'root-project-folder/package.module' (ModuleNotFoundError: No module
named 'root-project-folder/package')
PD: 我在 Ubuntu
上使用 bash
您的包中需要 toml 或 setup.py 才能生成 python 包。您可以在这里阅读更多内容:https://packaging.python.org/tutorials/packaging-projects/
一旦正确构建了包文件夹,就可以运行命令
pip install -e .
从文件夹安装你的包
您的包裹已准备就绪 imported/deployed
如何delpoy到PyPi是另一个讨论话题
这里有两种解决方案:
运行python -m root-project-folder.package.module
。基本上,您将 rood-project-folder
视为一个模块并使用 .
来分隔文件夹,而不是像在 Python 代码中那样使用 /
。
将 root-project-folder
添加到 PYTHONPATH
。现在您将能够像往常一样从计算机上的任何文件夹中 运行 python -m package.module
。
当 运行 连接 Python 模块(在包内)时,我总是使用父文件夹中的选项 -m。
假设我们有以下文件目录:
folder-that-contains-root-project-folder/
root-project-folder/
package/
__init__.py
module.py
venv/
我总是运行module.py从文件夹root-project-folder
作为python -m package.module
并且有效。
但是我怎么能从folder-that-contains-root-project-folder
运行module.py呢?到目前为止我尝试的是 python -m root-project-folder/package.module
但它不起作用。
编辑: 运行ning from folder-that-contains-root-project-folder
时的错误是:
/home/eduardo/Desktop/folder-that-contains-root-project-folder/root-project-folder/venv/bin/python:
Error while finding module specification for
'root-project-folder/package.module' (ModuleNotFoundError: No module
named 'root-project-folder/package')
PD: 我在 Ubuntu
上使用 bash您的包中需要 toml 或 setup.py 才能生成 python 包。您可以在这里阅读更多内容:
https://packaging.python.org/tutorials/packaging-projects/
一旦正确构建了包文件夹,就可以运行命令
pip install -e .
从文件夹安装你的包您的包裹已准备就绪 imported/deployed
如何delpoy到PyPi是另一个讨论话题
这里有两种解决方案:
运行
python -m root-project-folder.package.module
。基本上,您将rood-project-folder
视为一个模块并使用.
来分隔文件夹,而不是像在 Python 代码中那样使用/
。将
root-project-folder
添加到PYTHONPATH
。现在您将能够像往常一样从计算机上的任何文件夹中 运行python -m package.module
。