Makefile находит неправильную установку Python (Python 2 вместо Python 3) - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь собрать Pyodide на Mac и столкнулся с проблемой, которая, по-видимому, является моей установкой Python по умолчанию.Я пробовал решение здесь , но я все еще получаю следующую ошибку при сборке с использованием make-файла:

stg-MBP:pyodide stg$ make
make -C packages
../bin/pyodide buildall . ../build \
    --ldflags="-O3 -s "BINARYEN_METHOD='native-wasm'" -Werror -s 
EMULATED_FUNCTION_POINTERS=1 -s EMULATE_FUNCTION_POINTER_CASTS=1 -s 
SIDE_MODULE=1 -s WASM=1 -s "BINARYEN_TRAP_MODE='clamp'" --memory-init- 
file 0" -- 
host=/Users/stg/workspaces/pyodide/cpython/build/3.7.0/host 
--target=/Users/stg/workspaces/pyodide/cpython/installs/python-3.7.0
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named pathlib
/usr/bin/python: No module named pyodide_build
make[1]: *** [all] Error 1

Мой .bash_profile содержит только следующие строки:

alias python=python3

# Setting PATH for Python 3.7
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

Однако терминал возвращает следующие ответы на эти команды

stg-MBP:pyodide stg$ which python
/usr/bin/python
stg-MBP:pyodide stg$ python --version
Python 3.7.0
stg-MBP:pyodide stg$ python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
stg-MBP:pyodide stg$ alias
alias python='python3'

Я попытался очистить хэш-таблицу и перезапустить терминал, но я все еще не могу заставить make найти python3 вместо этогоpython2 (я предполагаю, что виновником является тот факт, что which python по-прежнему возвращает системный python вместо python3.) Есть ли способ указать make-файлу правильную установку python3 хотя бы для текущего сеанса терминала?

1 Ответ

0 голосов
/ 06 октября 2018

.bash_profile оценивается только по оболочкам входа в систему, а псевдонимы не наследуются подоболочками, поэтому при запуске сборки Pyodide псевдоним не активен.

В сборке необходимо отредактировать bin/pyoideдерево, или вы можете поместить символическую ссылку на python3 под именем python в каталоге и добавить этот каталог в начало PATH, например:

PATH="/path/to/directory-with-symbolic-link:$PATH" make

Таким образом, python вызовет интерпретатор Python 3, потому что PATH наследуется подоболочками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...