Pyo3: Build failing on Windows (Rust 32-bit + Python 32-bit)

Created on 8 Apr 2020  路  9Comments  路  Source: PyO3/pyo3

馃實 Environment

  • Your operating system and version: Microsoft Windows Server 2019
  • Your python version: 3.7 x86
  • How did you install python: Github action actions/setup-python@v1
  • Your rust version (rustc --version): rustc 1.44.0-nightly (6dee5f112 2020-04-06) using target nightly-i686-pc-windows-msvc
  • Are you using the latest pyo3 version? Have you tried using latest master (replace version = "0.x.y" with git = "https://github.com/PyO3/pyo3")? No, only 0.9.1

Bug:

I am not able to compile on Windows, using a 32-bit Rust, and a 32-bit Python after the following change: https://github.com/PyO3/pyo3/commit/f3876a90b34b92641157cc0af047139f896e968e#diff-a7b0a2dee0126cddf994326e705a91ea

It fails with the error "Your Rust target architecture (32-bit) does not match your python interpreter (64-bit)"

This is happening while trying to publish the tokenizers library after we upgraded to PyO3 0.9.1.

Here is the actual failing github action for more info: https://github.com/huggingface/tokenizers/runs/571695108?check_suite_focus=true

And an excerpt of the logs:

Compiling pyo3 v0.9.1
     Running `rustc --crate-name build_script_build --edition=2018 C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\pyo3-0.9.1\build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 --cfg "feature=\"default\"" --cfg "feature=\"extension-module\"" --cfg "feature=\"python3\"" -C metadata=c119e59e7dcf13e3 -C extra-filename=-c119e59e7dcf13e3 --out-dir D:\a\tokenizers\tokenizers\bindings\python\target\release\build\pyo3-c119e59e7dcf13e3 -L dependency=D:\a\tokenizers\tokenizers\bindings\python\target\release\deps --extern regex=D:\a\tokenizers\tokenizers\bindings\python\target\release\deps\libregex-db1a33a09c979e08.rlib --extern serde=D:\a\tokenizers\tokenizers\bindings\python\target\release\deps\libserde-da8729505ceb1269.rlib --extern serde_json=D:\a\tokenizers\tokenizers\bindings\python\target\release\deps\libserde_json-853271e043517407.rlib --extern version_check=D:\a\tokenizers\tokenizers\bindings\python\target\release\deps\libversion_check-27b2faabd9d7eb05.rlib --cap-lints allow`
     Running `D:\a\tokenizers\tokenizers\bindings\python\target\release\build\pyo3-c119e59e7dcf13e3\build-script-build`
error: failed to run custom build command for `pyo3 v0.9.1`

Caused by:
  process didn't exit successfully: `D:\a\tokenizers\tokenizers\bindings\python\target\release\build\pyo3-c119e59e7dcf13e3\build-script-build` (exit code: 1)
--- stderr
Error: "Your Rust target architecture (32-bit) does not match your python interpreter (64-bit)"

warning: build failed, waiting for other jobs to finish...
error: build failed
C:\hostedtoolcache\windows\Python\3.7.6\x86\lib\site-packages\setuptools\dist.py:454: UserWarning: Normalizing '0.7.0-rc4' to '0.7.0rc4'

Most helpful comment

Awesome! Thank you @kngwyu & @davidhewitt

I just wanted to tell you that PyO3 is really great! You are doing a wonderful job.

All 9 comments

Can you try master? We've had a fix for this bug which I think will help you here.

(To clarify, the change f3876a9 that you've highlighted is not yet released, I'm expecting both 0.9.0 and 0.9.1 will have a problem but master should work.)

Indeed master works well, thank you! I thought this change had been added in the 0.9.1 and was the actual cause.
cf https://github.com/huggingface/tokenizers/runs/571952192?check_suite_focus=true

Do you know when this is planned to be released?

I thought this might be included in a 0.9.2 but I think master now has breaking changes on it, so we might spend some time preparing 0.10. @kngwyu ?

I'm preparing 0.9.2 on #859.

Awesome! Thank you @kngwyu & @davidhewitt

I just wanted to tell you that PyO3 is really great! You are doing a wonderful job.

Awesome! Thank you @kngwyu & @davidhewitt

And all the other contributors.

I just wanted to tell you that PyO3 is really great! You are doing a wonderful job.

Definitely agreed! Without PyO3, I probably wouldn't have chosen to implement simple-soft-float or algebraics in Rust, since we're (Libre-SOC) using them to test/verify our processor design which is written in Python using nmigen.

Awesome! Thank you @kngwyu & @davidhewitt

Let's pretend it wasn't me that put this bug in in the first place 馃槀.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

sebpuetz picture sebpuetz  路  5Comments

ametisf picture ametisf  路  3Comments

vorner picture vorner  路  7Comments

davidhewitt picture davidhewitt  路  5Comments

acminor picture acminor  路  3Comments