运行“poetry run”命令时出现 PermissionError

Y. *_*. P 4 python python-poetry

环境

  • Ubuntu 20.04
  • 蟒蛇 3.7.3
  • 诗歌 1.0.8

我的问题

我安装了诗歌来管理包,并通过以下简单项目进行了尝试,

.
??? myproject
    ??? README.rst
    ??? myproject
    ?   ??? __init__.py
    ?   ??? main.py
    ??? myproject.egg-info
    ?   ??? PKG-INFO
    ?   ??? SOURCES.txt
    ?   ??? dependency_links.txt
    ?   ??? requires.txt
    ?   ??? top_level.txt
    ??? poetry.lock
    ??? pyproject.toml
    ??? tests
        ??? __init__.py
        ??? test_myproject.py

Run Code Online (Sandbox Code Playgroud)

运行main.py我试过

$ poetry run myproject/main.py
Run Code Online (Sandbox Code Playgroud)

但我有一个错误,它说,

[PermissionError]
[Errno 13] Permission denied
Run Code Online (Sandbox Code Playgroud)

我试过的

为了运行我的代码,我尝试了另一种方式。

$ poetry shell
(myproject-x8XipcUE-py3.7)$ python myproject/main.py
Run Code Online (Sandbox Code Playgroud)

我没有错误...

我的poetry run命令有什么问题?

Dav*_*veR 8

仅供参考你也可以这样做poetry run python myproject/main.py

  • 这应该是公认的答案。在 python 脚本中添加 +x 并不真正安全。 (8认同)

Roy*_*012 6

我的猜测是这myproject/main.py不是可执行文件(没有“x”)权限。这就是为什么您可以使用 运行它python myproject/main.py,但不能将其作为主 exe 运行。要修复它,请运行chmod +x myproject/main.py,然后poetry run重试。

当然,您必须在 的最顶部有一个合适的 Shebang main.py。类似的东西#!/usr/bin/env python(再次 - 在文件的最开头)。