Open tcrasset opened 5 months ago
I have also had a similar issue using poetry -C some/relative/path install
in my CI setup.
I imagine it is the same root cause.
e.g.
# starting in repository root
$ poetry config virtualenvs.in-project true
$ poetry -C backend install
$ cat backend/.venv/bin/flake8
#!backend/.venv/bin/python <-- relative path
# ... rest of script ...
Another workaround I found was to specify the path passed to -C
as an absolute path
e.g.
# starting in repository root (/home/lincoln/project)
$ poetry config virtualenvs.in-project true
$ poetry -C /home/lincoln/project/backend install
$ cat backend/.venv/bin/flake8
#!/home/lincoln/project/backend/.venv/bin/python <-- absolute path ✅
# ... rest of script ...
Description
poetry -C path/to/project add package
installs package but the shebang interpreter directive has a relative path to the python interpreter, instead of an absolute.This means that the package can only be run from the same place it was installed.
Example:
Running from the same place it was installed, it finds the package
but
cd
into the directory, and run the command again, it fails.This is because the python interpreter has a relative path.
If I instead install it from the directory where it's used, it works, regardless from where I'm calling it from, as the path is absolute.
Related to https://github.com/python-poetry/poetry/issues/9247
Workarounds
Use
cd path/to/package && poetry [CMD]
instead ofpoetry -C path/to/package [CMD]
Poetry Installation Method
install.python-poetry.org
Operating System
Ubuntu 20.04
Poetry Version
1.8.3
Poetry Configuration