当我 运行 "poetry run" 命令时有 PermissionError

Have PermissionError when I run "poetry run" command

环境

我的问题

我安装了 poetry 来管理包,我用下面的简单项目试了一下,

.
└── 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

给运行main.py我试过了

$ poetry run myproject/main.py

但是我有一个错误,上面写着,

[PermissionError]
[Errno 13] Permission denied

我试过的

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

$ poetry shell
(myproject-x8XipcUE-py3.7)$ python myproject/main.py

我没有出错...

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

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

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

仅供参考,您也可以poetry run python myproject/main.py