簡體   English   中英

通過 pyenv 安裝 python 時缺少“_ctypes”模塊

[英]'_ctypes' module missing when python is installed via pyenv

我正在嘗試在 Ubuntu 20.04 上使用 pyenv 和自制軟件設置環境。 我的系統安裝 python 沒有問題。但是,當我使用 pyenv 安裝特定版本的 python 時,我在運行 Jupyter 時遇到以下問題:

> jupyter notebook
Traceback (most recent call last):
  File "/home/parzydlo/.pyenv/versions/3.10.3/bin/jupyter-notebook", line 5, in <module>
    from notebook.notebookapp import main
  File "/home/parzydlo/.pyenv/versions/3.10.3/lib/python3.10/site-packages/notebook/notebookapp.py", line 76, in <module>
    from .base.handlers import Template404, RedirectWithParams
  File "/home/parzydlo/.pyenv/versions/3.10.3/lib/python3.10/site-packages/notebook/base/handlers.py", line 35, in <module>
    from notebook.utils import is_hidden, url_path_join, url_is_absolute, url_escape, urldecode_unix_socket_path
  File "/home/parzydlo/.pyenv/versions/3.10.3/lib/python3.10/site-packages/notebook/utils.py", line 8, in <module>
    import ctypes
  File "/home/parzydlo/.pyenv/versions/3.10.3/lib/python3.10/ctypes/__init__.py", line 8, in <module>
    from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'

要驗證 package 是否丟失:

> python3
Python 3.10.3 (main, Apr  7 2022, 19:51:28) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/parzydlo/.pyenv/versions/3.10.3/lib/python3.10/ctypes/__init__.py", line 8, in <module>
    from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'

當我切換回系統 python 時:

> pyenv local system
> python3
Python 3.9.12 (main, Mar 23 2022, 21:36:19)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
>>>

在 SO 上關注眾多線程后,我安裝了libffi-dev並嘗試重新安裝 pyenv python 但問題仍然存在。 也許值得一提的是,我使用自制軟件作為我的 package 管理器,但必須使用 apt 安裝libffi-dev

最后,我閱讀了 [this post on dev.to][1],其中建議了以下修復:

CC="$(brew --prefix gcc)/bin/gcc-11" \
pyenv install --verbose 3.10.0

不幸的是,這也沒有解決問題。 [1]: https://dev.to/ajkerrigan/homebrew-pyenv-ctypes-oh-my-3d9#isolating-the-useful-change

我有類似的問題,訣竅是你需要重新安裝相同的 python 版本,例如pyenv install -f在所有apt install lib**-dev之后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM