Repository navigation
Description
-
I am on the latest Poetry version.
-
I have searched the issues of this repo and believe that this is not a duplicate.
-
If an exception occurs when executing a command, I executed it again in debug mode (
-vvvoption). -
OS version and name: gitlab python3.8 docker image
-
Poetry version: 1.0.3
-
Link of a Gist with the contents of your pyproject.toml file: gitlab-ci report
Issue
I have a project using poetry that use Gitlab-CI and tox to run tests in several environments. The very same code works in python 3.5, 3.6 and 3.7, but produce the following error with python 3.8. The error message is not very clear so I am not sure what is going on.
You can view all the successful executions here and the failing one here. If it matters, you can see the tox configuration here and the poetry configuration here.
py38 run-test: commands[0] | poetry install -vvv --extras all
Using virtualenv: /builds/yaal/sheraf/.tox/py38
[TypeError]
expected string or bytes-like object
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/clikit/console_application.py", line 131, in run
status_code = command.handle(parsed_args, io)
File "/usr/local/lib/python3.8/site-packages/clikit/api/command/command.py", line 120, in handle
status_code = self._do_handle(args, io)
File "/usr/local/lib/python3.8/site-packages/clikit/api/command/command.py", line 171, in _do_handle
return getattr(handler, handler_method)(args, io, self)
File "/usr/local/lib/python3.8/site-packages/cleo/commands/command.py", line 92, in wrap_handle
return self.handle()
File "/usr/local/lib/python3.8/site-packages/poetry/console/commands/install.py", line 47, in handle
installer = Installer(
File "/usr/local/lib/python3.8/site-packages/poetry/installation/installer.py", line 55, in __init__
installed = self._get_installed()
File "/usr/local/lib/python3.8/site-packages/poetry/installation/installer.py", line 488, in _get_installed
return InstalledRepository.load(self._env)
File "/usr/local/lib/python3.8/site-packages/poetry/repositories/installed_repository.py", line 26, in load
package = Package(name, version, version)
File "/usr/local/lib/python3.8/site-packages/poetry/packages/package.py", line 42, in __init__
self._name = canonicalize_name(name)
File "/usr/local/lib/python3.8/site-packages/poetry/utils/helpers.py", line 26, in canonicalize_name
return _canonicalize_regex.sub("-", name).lower()
ERROR: InvocationError for command /usr/local/bin/poetry install -vvv --extras all (exited with code 1)Thank you for your help
Activity
toymachine commentedon Feb 12, 2020
Hi, I experience the same issue, and eventually traced it to this:
e.g. at this point env.sys_path contains an empty string as the first item, which somehow eventually leads to 'name' passed to canonicalize_name being None
skipping the empty entry as i did here seems to fix it for now
jonadaly commentedon Feb 13, 2020
Seeing the exact same issue, but on Python 3.7.2 and poetry 1.0.3. Downgrading to poetry 1.0.2 made no difference.
finswimmer commentedon Feb 14, 2020
I think this is caused by a bug in virtualenv like mentioned in #1953. This is fixed in the latest release of virtualenv.
cordery commentedon Feb 18, 2020
This will also happen if you somehow end up with an .egg-info file (presumably malformatted) in your project directory. I think I created one unintentionally while experimenting with dephell, but regardless of the source this is what you can expect to see:
myproject % touch myproject.egg-info myproject % poetry check All set! myproject % poetry show [TypeError] expected string or bytes-like object myproject % rm myproject.egg-info myproject % poetry show aiohttp 3.6.2 Async http client/server framework (asyncio) ....Evgenus commentedon Jun 11, 2020
@cordery thank you, man. that was sick.
Vozf commentedon Sep 22, 2020
For me it was also due to activated conda environment. So it was fixed by
conda deactivatetrim21 commentedon Oct 3, 2020
I met this bug again in poetry==1.1.0 on windows.
abn commentedon Oct 3, 2020
@trim21 can you raise a new issue with some additional details please? Maybe a pyproject.toml,
-vvvlogs and how python was installed? I am particularly curious to see if the use ofPYTHONUSERBASEhas an impact on this as well.trim21 commentedon Oct 3, 2020
@abn OK, I'll create a repo with github actions to reproduce it.
adam-grant-hendry commentedon Oct 6, 2020
Same issue
adam-grant-hendry commentedon Oct 6, 2020
@trim21 Is there a link to your repo?
adam-grant-hendry commentedon Oct 6, 2020
@cordery Also confirm this was due to a bad egg for me. I deleted the
.egg-infofolder, recreated myvenv, and reranpoetry installwith my existingtomland it worked.abn commentedon Oct 6, 2020
@adam-grant-hendry; yes I think this is because we moved to a in-tree editable installer (1.1) rather than relying on setuptools (1.0). The old egg-info takes precedence when python path is built i think.
7 remaining items
shaunc commentedon Nov 13, 2020
Also the same (git dependency) -- made sure I have most recent virtualenv, and deleted the old virtualenv, but still didn't work with reported error.
Pyproject.toml as follows:
zvolsky commentedon Feb 19, 2021
My idea is that this error will occur allways if the name of installed package is missing for poetry.
I want install some package shared between my projects on the development machine (something like -e mode of pip). I create empty mypackage/ and inside mypackage/mypackage/ with code.
Now: Both
poetry add mypackage/andpoetry add mypackage/mypackage/will fail with the error above.Then I create
mypackage/setup.pywithsetup(name='mypackage', .....). And now:poetry add mypackage/` will install the editable package without problems.Minimum
setup.pycontent for this goal is:Maybe this will help to identify the reasons more exactly?
djackson-exo-inc commentedon Feb 25, 2021
What is the solution to this? This ticket is closed, but I am still getting the issue. I have read every comment here and did not see what allowed this to be closed. If this is fixed in some version of poetry, can someone please be explicit about which specific version of poetry this is fixed in? Thank you.
gregorgabrovsek commentedon Mar 18, 2021
On my machine, this was fixed when I installed Poetry version 1.1.5.
RashiqAzhan commentedon Apr 14, 2021
Don't know why this issue is closed but still exists in version 1.1.5.
YoshihikoFuruhashi commentedon May 7, 2021
In my case, I moved pyproject.toml to the root directory of the git repository and that fixed the problem.
But the error occurred if pyproject.toml was placed in the sub directory.
OK
git repository root/
├ pyproject.toml
├ src/
NG
git repository root/
├ src/
└ pyproject.toml
(repository = GitHub repository of poetry package)
PaulBenn-UnlikelyAI commentedon Jun 11, 2021
For people looking for an open issue related to this, the discussion seems to continue here: #3628
jaepil-choi commentedon Jul 28, 2021
This issue still exists in the latest 1.1.7
Chiang97912 commentedon Aug 30, 2021
I solved this problem by deleting the virtual environment. First you can get ENV_NAME by typing
poetry env list, and then typingpoetry env remove ENV_NAMEto delete this virtual environment.mlissner commentedon Nov 20, 2021
Nuking and recreating the env did it for me too. I did hit CTRL+C in the middle of an install before this problem began. I guess I'm naive to think that'd be safe.
RobertTownley commentedon Nov 22, 2021
I was encountering this issue within the build phase of a dockerized Django web app. I made a few changes to my Dockerfile which fixed this issue for me. Unfortunately I'm not fully clear on which change fixed it. I suspect it's that in poetry v1.x.x the lack of virtualenvs is configured via
POETRY_VIRTUALENVS_CREATE=falserather thank configuring it withRUN poetry config virtualenvs.create. Nonetheless, I run both in this dockerfile (probably redundantly) and the issue has fixed itself.douwevandermeij commentedon May 19, 2022
For everyone still having issues with this, also with Python 3.9, this could also work (worked for me):
Or in Docker:
bw2 commentedon Jun 2, 2022
Deleting the single *.egg from my .../python3.*/site-packages/ directory fixed this error.
github-actions commentedon Mar 2, 2024
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.