chakokuのブログ(rev4)

テック・コミック・ごくまれにチャリ

Rust std エラー

Rust でstdを使ったサンプルをビルドしようとしてエラーになる。
Pythonの仮想環境でなにかを実行しようとしているようなのだが、_get_default_schemeが無いと怒られているのか?

  File "/home/xxxxx/.local/lib/python3.10/site-packages/virtualenv.py", line 1162, in create_environment
    install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages=site_packages, clear=clear, symlink=symlink)
  File "/home/xxxxx/.local/lib/python3.10/site-packages/virtualenv.py", line 1721, in install_python
    fix_local_scheme(home_dir, symlink)
  File "/home/xxxx/.local/lib/python3.10/site-packages/virtualenv.py", line 1807, in fix_local_scheme
    if sysconfig._get_default_scheme() == "posix_local":
AttributeError: module 'sysconfig' has no attribute '_get_default_scheme'. Did you mean: 'get_default_scheme'?

たしかに、sysconfigには_get_default_scheme はない

>>> import sysconfig
>>> dir(sysconfig)
['_ALWAYS_STR', '_BASE_EXEC_PREFIX', '_BASE_PREFIX', '_CONFIG_VARS', '_EXEC_PREFIX', '_HAS_USER_BASE', '_INSTALL_SCHEMES', '_PREFIX', '_PROJECT_BASE', '_PYTHON_BUILD', '_PY_VERSION', '_PY_VERSION_SHORT', '_PY_VERSION_SHORT_NO_DOT', '_SCHEME_KEYS', '_USER_BASE', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_expand_vars', '_extend_dict', '_findvar1_rx', '_findvar2_rx', '_generate_posix_vars', '_get_preferred_schemes', '_get_sysconfigdata_name', '_getuserbase', '_init_non_posix', '_init_posix', '_is_python_source_dir', '_main', '_parse_makefile', '_print_dict', '_safe_realpath', '_subst_vars', '_sys_home', '_variable_rx', 'expand_makefile_vars', 'get_config_h_filename', 'get_config_var', 'get_config_vars', 'get_default_scheme', 'get_makefile_filename', 'get_path', 'get_path_names', 'get_paths', 'get_platform', 'get_preferred_scheme', 'get_python_version', 'get_scheme_names', 'is_python_build', 'os', 'pardir', 'parse_config_h', 'realpath', 'sys']

であれば、WorkAroundとして、エラーを起こしている、virtualenv.py に対して手パッチをあてるか。。

~/.local/lib/python3.10/site-packages$ diff virtualenv.py_org virtualenv.py
1807c1807
<         if sysconfig._get_default_scheme() == "posix_local":
---
>         if sysconfig.get_default_scheme() == "posix_local":

手パッチが効いて上記エラーはでなくなった。が、、次にまた別のエラーが出た。 なぜ単純に動作するサンプルが存在しないのか?? 自分の環境構築手順がまずいか