-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ModuleNotFoundError: No module named 'cmake' during pip install -e . #5194
Comments
Hi @guoyuhong, |
@jcwchen In my env, cmake should be installed from pip and the system cmake should not be used. If I use the system cmake, I cannot repro this issue either. My env setup:
|
@jcwchen can you repro this failure with this configuration? |
Yes, thanks for providing the configuration. After removing system cmake and installing cmake from PyPI, I can repro this issue. Also confirmed your PR can solve it. |
I'm also encountering this. I think "pip install -e ." is installing in a virtual environment, where cmake is not found sometimes. There is a note about the setup.py usage at setuptools
So I managed to solve this by adding this line inside setup.py: I'm having different issues now, but cmake is at least found. |
### Description * Fix source and pip tar.gz builds on s390x systems * Revert (#5195) and replace with fix from [this comment](#5194 (comment)) from the original issue (#5194) ### Motivation and Context * Building on s390x (and other environments depending on python setup) fails * The issue also can also appear when installing from pypi for environments where we don't have pre-built wheels * Failures include not being able to find pacakges dispite them being installed ``` pip3 install -e . ... -- Could NOT find pybind11 (missing: pybind11_DIR) ... Traceback (most recent call last): File "/onnx/.setuptools-cmake-build/tools/protoc-gen-mypy.py", line 28, in <module> import google.protobuf.descriptor_pb2 as d_typed ``` * The issue is cased by (#5195) which was to fix (#5194) * The original fix bypasses the pip venv PYTHONPATH and attempts to rely on sys.path. However without the pip venv PYTHONPATH, some modules may not be found even if they are installed. * For reference, the pip venv PYTHONPATH is set to `/tmp/pip-build-env-bn_o_cjc/site` which contains `sitecustomize.py` which comes from https://github.com/pypa/pip/blob/main/tests/lib/venv.py#L171-L189 * Instead of bypassing the pip venv PYTHONPATH, [this comment](#5194 (comment)) from the original issue shows how to address the issue using pyproject.toml's `[build-system]` * I replicated the origial issue and confirmed this fix resolves it. * I confirmed the builds work on s390x with this fix
* Fix builds from source and pip tar.gz on s390x systems * Revert (#5195) and replace with fix from [this comment](#5194 (comment)) from the original issue (#5194) ### Motivation and Context * Building on s390x (and other environments depending on python setup) fails * The issue also can also appear when installing `1.16.0rc1` from TestPyPI for environments where we don't have pre-built wheels * Failures include not being able to find pacakges despite them being installed ``` pip3 install -e . ... -- Could NOT find pybind11 (missing: pybind11_DIR) ... Traceback (most recent call last): File "/onnx/.setuptools-cmake-build/tools/protoc-gen-mypy.py", line 28, in <module> import google.protobuf.descriptor_pb2 as d_typed ``` * The issue is cased by (#5195) which was to fix (#5194) * The original fix bypasses the pip venv PYTHONPATH and attempts to rely on sys.path. However without the pip venv PYTHONPATH, some modules may not be found even if they are installed. * For reference, the pip venv PYTHONPATH gets set to `/tmp/pip-build-env-bn_o_cjc/site` which contains `sitecustomize.py` which comes from https://github.com/pypa/pip/blob/main/tests/lib/venv.py#L171-L189 * Instead of bypassing the pip venv PYTHONPATH, [this comment](#5194 (comment)) from the original issue shows how to address the issue using pyproject.toml's `[build-system]` * I replicated the origial issue and confirmed this fix resolves it. * I confirmed the builds work on s390x with this fix Signed-off-by: Charles Volzka <cjvolzka@us.ibm.com>
### Description * Fix builds from source and pip tar.gz on s390x systems * Revert (#5195) and replace with fix from [this comment](#5194 (comment)) from the original issue (#5194) ### Motivation and Context * Building on s390x (and other environments depending on python setup) fails * The issue also can also appear when installing `1.16.0rc1` from TestPyPI for environments where we don't have pre-built wheels * Failures include not being able to find pacakges despite them being installed ``` pip3 install -e . ... -- Could NOT find pybind11 (missing: pybind11_DIR) ... Traceback (most recent call last): File "/onnx/.setuptools-cmake-build/tools/protoc-gen-mypy.py", line 28, in <module> import google.protobuf.descriptor_pb2 as d_typed ``` * The issue is cased by (#5195) which was to fix (#5194) * The original fix bypasses the pip venv PYTHONPATH and attempts to rely on sys.path. However without the pip venv PYTHONPATH, some modules may not be found even if they are installed. * For reference, the pip venv PYTHONPATH gets set to `/tmp/pip-build-env-bn_o_cjc/site` which contains `sitecustomize.py` which comes from https://github.com/pypa/pip/blob/main/tests/lib/venv.py#L171-L189 * Instead of bypassing the pip venv PYTHONPATH, [this comment](#5194 (comment)) from the original issue shows how to address the issue using pyproject.toml's `[build-system]` * I replicated the origial issue and confirmed this fix resolves it. * I confirmed the builds work on s390x with this fix Signed-off-by: Charles Volzka <cjvolzka@us.ibm.com>
### Description * Cherry-pick (#5984) - Fix builds from source and pip tar.gz on s390x systems * Revert (#5195) and replace with fix from [this comment](#5194 (comment)) from the original issue (#5194) ### Motivation and Context * Building on s390x (and other environments depending on python setup) fails * The issue also can also appear when installing `1.16.0rc1` from TestPyPI for environments where we don't have pre-built wheels * Failures include not being able to find pacakges despite them being installed ``` pip3 install -e . ... -- Could NOT find pybind11 (missing: pybind11_DIR) ... Traceback (most recent call last): File "/onnx/.setuptools-cmake-build/tools/protoc-gen-mypy.py", line 28, in <module> import google.protobuf.descriptor_pb2 as d_typed ``` * The issue is cased by (#5195) which was to fix (#5194) * The original fix bypasses the pip venv PYTHONPATH and attempts to rely on sys.path. However without the pip venv PYTHONPATH, some modules may not be found even if they are installed. * For reference, the pip venv PYTHONPATH gets set to `/tmp/pip-build-env-bn_o_cjc/site` which contains `sitecustomize.py` which comes from https://github.com/pypa/pip/blob/main/tests/lib/venv.py#L171-L189 * Instead of bypassing the pip venv PYTHONPATH, [this comment](#5194 (comment)) from the original issue shows how to address the issue using pyproject.toml's `[build-system]` * I replicated the origial issue and confirmed this fix resolves it. * I confirmed the builds work on s390x with this fix Signed-off-by: Charles Volzka <cjvolzka@us.ibm.com>
…5986) ### Description * Cherry-pick (#5984) - Fix builds from source and pip tar.gz on s390x systems * Revert (#5195) and replace with fix from [this comment](#5194 (comment)) from the original issue (#5194) ### Motivation and Context * Building on s390x (and other environments depending on python setup) fails * The issue also can also appear when installing `1.16.0rc1` from TestPyPI for environments where we don't have pre-built wheels * Failures include not being able to find pacakges despite them being installed ``` pip3 install -e . ... -- Could NOT find pybind11 (missing: pybind11_DIR) ... Traceback (most recent call last): File "/onnx/.setuptools-cmake-build/tools/protoc-gen-mypy.py", line 28, in <module> import google.protobuf.descriptor_pb2 as d_typed ``` * The issue is cased by (#5195) which was to fix (#5194) * The original fix bypasses the pip venv PYTHONPATH and attempts to rely on sys.path. However without the pip venv PYTHONPATH, some modules may not be found even if they are installed. * For reference, the pip venv PYTHONPATH gets set to `/tmp/pip-build-env-bn_o_cjc/site` which contains `sitecustomize.py` which comes from https://github.com/pypa/pip/blob/main/tests/lib/venv.py#L171-L189 * Instead of bypassing the pip venv PYTHONPATH, [this comment](#5194 (comment)) from the original issue shows how to address the issue using pyproject.toml's `[build-system]` * I replicated the origial issue and confirmed this fix resolves it. * I confirmed the builds work on s390x with this fix Signed-off-by: Charles Volzka <cjvolzka@us.ibm.com>
### Description * Fix builds from source and pip tar.gz on s390x systems * Revert (onnx#5195) and replace with fix from [this comment](onnx#5194 (comment)) from the original issue (onnx#5194) ### Motivation and Context * Building on s390x (and other environments depending on python setup) fails * The issue also can also appear when installing `1.16.0rc1` from TestPyPI for environments where we don't have pre-built wheels * Failures include not being able to find pacakges despite them being installed ``` pip3 install -e . ... -- Could NOT find pybind11 (missing: pybind11_DIR) ... Traceback (most recent call last): File "/onnx/.setuptools-cmake-build/tools/protoc-gen-mypy.py", line 28, in <module> import google.protobuf.descriptor_pb2 as d_typed ``` * The issue is cased by (onnx#5195) which was to fix (onnx#5194) * The original fix bypasses the pip venv PYTHONPATH and attempts to rely on sys.path. However without the pip venv PYTHONPATH, some modules may not be found even if they are installed. * For reference, the pip venv PYTHONPATH gets set to `/tmp/pip-build-env-bn_o_cjc/site` which contains `sitecustomize.py` which comes from https://github.com/pypa/pip/blob/main/tests/lib/venv.py#L171-L189 * Instead of bypassing the pip venv PYTHONPATH, [this comment](onnx#5194 (comment)) from the original issue shows how to address the issue using pyproject.toml's `[build-system]` * I replicated the origial issue and confirmed this fix resolves it. * I confirmed the builds work on s390x with this fix Signed-off-by: Charles Volzka <cjvolzka@us.ibm.com> Signed-off-by: isdanni <leedanni@gmail.com>
adding "cmake" to "requires" in pyproject.toml forces out system cmake. cmake in python environment fails to build onnx correctly on Windows: onnx.sln cannot be built with visual studio. #6045 is to fix this problem. In general, System installed cmake shall be used by default. cmake in a python environment may only be used if it is already installed in a python environment. |
### Description Current fix of #5194 forces out system installed cmake. It forces to use a cmake installed via pyproject.toml in a python environment. The cmake in python environment fails on Windows - onnx.sln cannot be built with visual studio due to protobuf code generation error. This PR skip cmake install in pyproject.toml in Windows. It is better only include cmake in pyproject.toml if needed. ### Motivation and Context <!-- - Why is this change required? What problem does it solve? --> <!-- - If it fixes an open issue, please link to the issue here. --> Signed-off-by: Liqun Fu <liqfu@microsoft.com>
@liqunfu I had to try some builds on s390x for a different unrelated issue. I had pulled in the latest |
Bug Report
Is the issue related to model conversion?
No. It related to the onnx build system.
Describe the bug
System information
pip install cmake
Reproduction instructions
pip install -e .
MacOs
Linux
Windows
Expected behavior
Notes
python setup.py build
works fine.The text was updated successfully, but these errors were encountered: