Python -m 当前目录

3

我使用pip install Some_lib安装了我的Python环境。在我的开发环境中,有一个名为Some_lib的文件夹,我想执行python -m Some_lib命令,以便执行当前文件夹而不是之前安装在Python环境中的Some_lib。是否可能?

最初的回答:

可以使用相对路径来执行当前文件夹中的Some_lib。例如,如果您的Some_lib文件夹位于项目根目录下,则可以使用以下命令:python -m .Some_lib。


那正是“python -m”的作用。你为什么会有其他的想法呢?你有遇到任何错误吗? - MisterMiyagi
2个回答

3
我认为根据文档python -s -m Some_lib应该可以工作:

-s 不将用户的site-packages目录添加到 sys.path.

但是你可能会在导入其他模块时遇到问题... 编辑: 实际上,默认情况下,当前工作目录版本具有优先权,因为

-m [...] 与 -c 选项一样,当前目录将被添加到 sys.path 的开头。

所以 python -m Some_lib 也应该可以工作。

刚刚编辑了答案,因为我发现当前目录版本的模块具有优先权。 - Jacques Gaudin

0
遗憾的是,禁止使用python -m .来运行当前模块。
创建一个名为some_lib的目录。 在其中创建一个名为__main__.py的文件,并编写主要代码, 同时创建一个名为'init.py'的文件。 将some_lib放入src中。 将src放入项目目录中。 使用PYTHONPATH=./src/ python -m some_lib调用该模块。
请参考此处示例链接:https://github.com/wieczorek1990/hello-worlds/tree/main/python

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接