PyOxidizer icon indicating copy to clipboard operation
PyOxidizer copied to clipboard

Not working at all on Mac

Open SeanPedersen opened this issue 10 months ago • 1 comments

Hey, I tried following this tutorial: https://gregoryszorc.com/docs/pyoxidizer/0.24.0/pyoxidizer_rust_generic_embedding.html

But any command involving PyOxidizer (e.g. pyoxidizer generate-python-embedding-artifacts artifacts), produces following error (I am on Mac):

warning: _distutils_hack contains __file__
warning: asyncio.__main__ contains __file__
warning: cProfile contains __file__
warning: distutils.command.sdist contains __file__
warning: distutils.core contains __file__
warning: distutils.dist contains __file__
warning: doctest contains __file__
warning: encodings contains __file__
warning: idlelib.browser contains __file__
warning: idlelib.config contains __file__
warning: idlelib.help contains __file__
warning: idlelib.help_about contains __file__
warning: idlelib.idle contains __file__
warning: idlelib.pyshell contains __file__
warning: idlelib.runscript contains __file__
warning: idlelib.tree contains __file__
warning: importlib contains __file__
warning: importlib._bootstrap contains __file__
warning: importlib._bootstrap_external contains __file__
warning: importlib.abc contains __file__
warning: inspect contains __file__
warning: lib2to3.pygram contains __file__
warning: logging contains __file__
warning: logging.handlers contains __file__
warning: modulefinder contains __file__
warning: multiprocessing.spawn contains __file__
warning: pdb contains __file__
warning: pip.__main__ contains __file__
warning: pip.__pip-runner__ contains __file__
warning: pip._internal.build_env contains __file__
warning: pip._internal.commands.debug contains __file__
warning: pip._internal.utils.misc contains __file__
warning: pip._internal.utils.setuptools_build contains __file__
warning: pip._internal.utils.virtualenv contains __file__
warning: pip._vendor contains __file__
warning: pip._vendor.certifi.core contains __file__
warning: pip._vendor.distlib.resources contains __file__
warning: pip._vendor.pep517.in_process contains __file__
warning: pip._vendor.pep517.in_process._in_process contains __file__
warning: pip._vendor.pkg_resources contains __file__
warning: pip._vendor.pygments.lexers.python contains __file__
warning: pip._vendor.pygments.sphinxext contains __file__
warning: pip._vendor.pygments.unistring contains __file__
warning: pip._vendor.rich.pretty contains __file__
warning: pip._vendor.rich.traceback contains __file__
warning: pkg_resources contains __file__
warning: pkgutil contains __file__
warning: profile contains __file__
warning: pyclbr contains __file__
warning: pydoc contains __file__
warning: pydoc_data.topics contains __file__
warning: runpy contains __file__
warning: setuptools._distutils.command.sdist contains __file__
warning: setuptools._distutils.core contains __file__
warning: setuptools._distutils.dist contains __file__
warning: setuptools.build_meta contains __file__
warning: setuptools.command.bdist_egg contains __file__
warning: setuptools.command.build_ext contains __file__
warning: setuptools.command.py36compat contains __file__
warning: setuptools.command.setopt contains __file__
warning: setuptools.launch contains __file__
warning: setuptools.sandbox contains __file__
warning: site contains __file__
warning: trace contains __file__
warning: turtle contains __file__
warning: turtledemo.__main__ contains __file__
warning: unittest contains __file__
warning: unittest.loader contains __file__
warning: venv contains __file__
warning: zipimport contains __file__
__file__ was encountered in some embedded modules
PyOxidizer does not set __file__ and this may create problems at run-time
See https://github.com/indygreg/PyOxidizer/issues/69 for more
generating custom link library containing Python...
deriving custom config.c from 98 extension modules
compiling custom config.c to object file
locating Apple SDK macosx13.1+ supporting macosx11.0
using MacOSX (version: 15.2) SDK at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk targeting macosx11.0
resolving inputs for custom Python library...
linking customized Python library...
error: resolving embedded context

Anyone got a clue what the problem is and how to fix it?

SeanPedersen avatar Mar 05 '25 21:03 SeanPedersen

I also tried running pyoxidizer build and got following output:

With following pyoxidizer.bzl:

def make_exe():
    dist = default_python_distribution()
    return dist.to_python_executable(name="hello")

register_target("exe", make_exe, default=True)
resolve_targets()

OUTPUT:

(pyapp) LeMacMini@Mac-mini-von-The pyapp % pyoxidizer build
resolving 1 targets
resolving target exe
target Python distribution for aarch64-apple-darwin resolves to: https://github.com/indygreg/python-build-standalone/releases/download/20221220/cpython-3.10.9%2B20221220-aarch64-apple-darwin-pgo-full.tar.zst (sha256=5a4a1128f6aa53a2cf6f748d0632da938cca4656c21688fbc564755ec4cd3519)
reusing target Python distribution for host execution
ensuring Rust toolchain 1.66.0 is available
rustc for aarch64-apple-darwin in /Users/Studio-MacMini/Library/Caches/pyoxidizer/rust/1.66.0-aarch64-apple-darwin is up-to-date
cargo for aarch64-apple-darwin in /Users/Studio-MacMini/Library/Caches/pyoxidizer/rust/1.66.0-aarch64-apple-darwin is up-to-date
rust-std for aarch64-apple-darwin in /Users/Studio-MacMini/Library/Caches/pyoxidizer/rust/1.66.0-aarch64-apple-darwin is up-to-date
     Created binary (application) package
writing /Users/Studio-MacMini/tmp/pyoxidizerA1v5TY/hello/.cargo/config
writing /Users/Studio-MacMini/tmp/pyoxidizerA1v5TY/hello/Cargo.lock
writing /Users/Studio-MacMini/tmp/pyoxidizerA1v5TY/hello/build.rs
writing /Users/Studio-MacMini/tmp/pyoxidizerA1v5TY/hello/src/main.rs
writing /Users/Studio-MacMini/tmp/pyoxidizerA1v5TY/hello/pyoxidizer.bzl
writing /Users/Studio-MacMini/tmp/pyoxidizerA1v5TY/hello/hello.exe.manifest
writing /Users/Studio-MacMini/tmp/pyoxidizerA1v5TY/hello/hello-manifest.rc
warning: _distutils_hack contains __file__
warning: asyncio.__main__ contains __file__
warning: cProfile contains __file__
warning: distutils.command.sdist contains __file__
warning: distutils.core contains __file__
warning: distutils.dist contains __file__
warning: doctest contains __file__
warning: encodings contains __file__
warning: idlelib.browser contains __file__
warning: idlelib.config contains __file__
warning: idlelib.help contains __file__
warning: idlelib.help_about contains __file__
warning: idlelib.idle contains __file__
warning: idlelib.pyshell contains __file__
warning: idlelib.runscript contains __file__
warning: idlelib.tree contains __file__
warning: importlib contains __file__
warning: importlib._bootstrap contains __file__
warning: importlib._bootstrap_external contains __file__
warning: importlib.abc contains __file__
warning: inspect contains __file__
warning: lib2to3.pygram contains __file__
warning: logging contains __file__
warning: logging.handlers contains __file__
warning: modulefinder contains __file__
warning: multiprocessing.spawn contains __file__
warning: pdb contains __file__
warning: pip.__main__ contains __file__
warning: pip.__pip-runner__ contains __file__
warning: pip._internal.build_env contains __file__
warning: pip._internal.commands.debug contains __file__
warning: pip._internal.utils.misc contains __file__
warning: pip._internal.utils.setuptools_build contains __file__
warning: pip._internal.utils.virtualenv contains __file__
warning: pip._vendor contains __file__
warning: pip._vendor.certifi.core contains __file__
warning: pip._vendor.distlib.resources contains __file__
warning: pip._vendor.pep517.in_process contains __file__
warning: pip._vendor.pep517.in_process._in_process contains __file__
warning: pip._vendor.pkg_resources contains __file__
warning: pip._vendor.pygments.lexers.python contains __file__
warning: pip._vendor.pygments.sphinxext contains __file__
warning: pip._vendor.pygments.unistring contains __file__
warning: pip._vendor.rich.pretty contains __file__
warning: pip._vendor.rich.traceback contains __file__
warning: pkg_resources contains __file__
warning: pkgutil contains __file__
warning: profile contains __file__
warning: pyclbr contains __file__
warning: pydoc contains __file__
warning: pydoc_data.topics contains __file__
warning: runpy contains __file__
warning: setuptools._distutils.command.sdist contains __file__
warning: setuptools._distutils.core contains __file__
warning: setuptools._distutils.dist contains __file__
warning: setuptools.build_meta contains __file__
warning: setuptools.command.bdist_egg contains __file__
warning: setuptools.command.build_ext contains __file__
warning: setuptools.command.py36compat contains __file__
warning: setuptools.command.setopt contains __file__
warning: setuptools.launch contains __file__
warning: setuptools.sandbox contains __file__
warning: site contains __file__
warning: trace contains __file__
warning: turtle contains __file__
warning: turtledemo.__main__ contains __file__
warning: unittest contains __file__
warning: unittest.loader contains __file__
warning: venv contains __file__
warning: zipimport contains __file__
__file__ was encountered in some embedded modules
PyOxidizer does not set __file__ and this may create problems at run-time
See https://github.com/indygreg/PyOxidizer/issues/69 for more
generating custom link library containing Python...
deriving custom config.c from 98 extension modules
compiling custom config.c to object file
locating Apple SDK macosx13.1+ supporting macosx11.0
using MacOSX (version: 15.2) SDK at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk targeting macosx11.0
resolving inputs for custom Python library...
linking customized Python library...
error: error calling build(): Runtime(RuntimeError { code: "PYOXIDIZER_PYTHON_EXECUTABLE", message: "building Python executable\n\nCaused by:\n    0: building executable with Rust project\n    1: obtaining embedded python context\n    2: resolving ar header for /Users/Studio-MacMini/tmp/pyoxidizer-libpythontpkQsQ/config_c/ee5243c21c2c434d-config.o\n    3: No such file or directory (os error 2)", label: "PythonExecutable.build()" })

SeanPedersen avatar Mar 06 '25 09:03 SeanPedersen

the problem was from reading the cache directory, if u running on VM then u sholud make sure the cache directory set on ur env try echo cache directory var by "$PYOXIDIZER_CACHE_DIR" if empty then update to the desired location (prefer use the ~/.cargo from root) by export PYOXIDIZER_CACHE_DIR="$HOME/.cache/pyoxidizer"

muthukumar-u avatar Apr 26 '25 11:04 muthukumar-u