mirmik / zencad

CAD system for righteous zen programmers
https://mirmik.github.io/zencad/
MIT License
134 stars 13 forks source link

Установка на Убунту #76

Closed solidboredom closed 3 years ago

solidboredom commented 3 years ago

Здравствуйте, Вы могли бы поделиться установочным скриптом или инструкциями на Убунту 20.04 ? Уж очень не хочется разбираться с спецификой окружения и библиотек, только что бы только попробовать зенкад. Я думаю это заметно сдерживает его распространение, среди людей не интерессующихся особенностями установки зависимостей пайтона. Хотелось бы простой рецепт установки или snap пакет.

попытался установить по инструкции readme.md:

sudo apt-get install python3-pip python3 -m pip install zencad sudo apt install qt5-default export PATH="$PATH:/home/(ктототам).local/bin" результат:

File "./test.py", line 4, in from zencad import File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/init.py", line 94, in raise ex File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/init.py", line 45, in from zencad.geom.solid import File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/geom/solid.py", line 1, in from zencad.geom.shape import Shape, nocached_shape_generator, shape_generator File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/geom/shape.py", line 3, in from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_Transform

заранее спасибо !

mirmik commented 3 years ago

Попробуйте запуститься не из скрипта, а вызвать из консоли комманду zencad или python3 -m zencad. По идее должна запуститься утилита, которая установит необходимые библиотеки.

mirmik commented 3 years ago

Утилиту также можно вызвать явно: python3 -m pip zencad --installer

mirmik commented 3 years ago

Действительно, документация несколько устарела. Но на полноценную поддержку проекта как-то руки не доходят. Так что варимся медленно. Если кто-то захочет заняться поддержкой snap пакета, то мы будем рады :)

solidboredom commented 3 years ago

Спасибо за быстрый отзыв, наблюдаются отчетливые контуры чего-то очень расплывчато-мутного с зависимостями и поиском файлов.

быть может мы сможем решить ету проблему здесь и это станет рецептом для установки на убунту: я исправил свою ошибку в path( там был забыт слеш), правильная команда: export PATH="$PATH:/home/(ктототам)/.local/bin"

и попробовал:

python3 -m pip zencad --installer результат:

ERROR: unknown command "zencad"

а если: python3 -m zencad результат:

Traceback (most recent call last): File "/usr/lib/python3.8/runpy.py", line 185, in _run_module_as_main mod_name, mod_spec, code = _get_module_details(mod_name, _Error) File "/usr/lib/python3.8/runpy.py", line 144, in _get_module_details return _get_module_details(pkg_main_name, error) File "/usr/lib/python3.8/runpy.py", line 111, in _get_module_details import(pkg_name) File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/init.py", line 94, in raise ex File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/init.py", line 45, in from zencad.geom.solid import * File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/geom/solid.py", line 1, in from zencad.geom.shape import Shape, nocached_shape_generator, shape_generator File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/geom/shape.py", line 3, in from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_Transform ModuleNotFoundError: No module named 'OCC'


а вот еще предупреждения были при установке: sudo apt-get install python3-pip [.....без предупреждений....]

потом: python3 -m pip install zencad Collecting zencad Downloading zencad-1.0.6-py3-none-any.whl (778 kB) |████████████████████████████████| 778 kB 864 kB/s Collecting evalcache>=1.14.0 Downloading evalcache-1.14.0-py3-none-any.whl (15 kB) Collecting numpy Downloading numpy-1.21.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.8 MB) |████████████████████████████████| 15.8 MB 775 kB/s Requirement already satisfied: pillow in /usr/lib/python3/dist-packages (from zencad) (7.0.0) Collecting psutil Downloading psutil-5.8.0-cp38-cp38-manylinux2010_x86_64.whl (296 kB) |████████████████████████████████| 296 kB 947 kB/s Installing collected packages: evalcache, numpy, psutil, zencad WARNING: The scripts f2py, f2py3 and f2py3.8 are installed in '/home/(ктототам)/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. WARNING: The script zencad is installed in '/home/(ктототам)/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

mirmik commented 3 years ago

Прошу прощения. Я глупость написал: Попробуйте python3 -m zencad --installer, конечно же. Без всяких pip.

Почему-то при простом python3 -m zencad условие на проверку отсутствия библиотек не срабатывает и она не хочет сама утилиту запускать.

solidboredom commented 3 years ago

спасибо попробовал, результат к сожалению не новый: python3 -m zencad --installer

Traceback (most recent call last): File "/usr/lib/python3.8/runpy.py", line 185, in _run_module_as_main mod_name, mod_spec, code = _get_module_details(mod_name, _Error) File "/usr/lib/python3.8/runpy.py", line 144, in _get_module_details return _get_module_details(pkg_main_name, error) File "/usr/lib/python3.8/runpy.py", line 111, in _get_module_details import(pkg_name) File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/init.py", line 94, in raise ex File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/init.py", line 45, in from zencad.geom.solid import * File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/geom/solid.py", line 1, in from zencad.geom.shape import Shape, nocached_shape_generator, shape_generator File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/geom/shape.py", line 3, in from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_Transform ModuleNotFoundError: No module named 'OCC'

mirmik commented 3 years ago

Окей. Я понял, откуда что берётся. Баг исправлен, мастер ветка и pypi пакет обновлены. Попробуйте еще раз.

solidboredom commented 3 years ago

еще не совсем работает, но ефект интерсный :) python3 -m pip install zencad Requirement already satisfied: zencad in ./.local/lib/python3.8/site-packages (1.0.6) Requirement already satisfied: numpy in ./.local/lib/python3.8/site-packages (from zencad) (1.21.1) Requirement already satisfied: pillow in /usr/lib/python3/dist-packages (from zencad) (7.0.0) Requirement already satisfied: evalcache>=1.14.0 in ./.local/lib/python3.8/site-packages (from zencad) (1.14.0) Requirement already satisfied: psutil in ./.local/lib/python3.8/site-packages (from zencad) (5.8.0)

(ктототам)@xxx:~$ zencad Traceback (most recent call last): File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/init.py", line 24, in import OCC ModuleNotFoundError: No module named 'OCC'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/(ктототам)/.local/bin/zencad", line 5, in from zencad.main import main File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/init.py", line 27, in import zencad.gui.libinstaller File "/home/(ктототам)/.local/lib/python3.8/site-packages/zencad/gui/libinstaller.py", line 5, in from zenframe.util import print_to_stderr ModuleNotFoundError: No module named 'zenframe' (ктототам)@xxx:~$

mirmik commented 3 years ago

А вот это да. Этот момент надо в документацию внести, тем более, что я сам о нём забыл. Модули zenframe и PyQt5 подтягиваются при указании extra [gui]. Или их можно установить отдельно. python3 -m pip install zencad[gui]

Обновлю Readme.

solidboredom commented 3 years ago

ок спасибо, процесс пошел, но до коммунизма еще не дошел. python3 -m pip install zencad[gui]

Requirement already satisfied: zencad[gui] in ./.local/lib/python3.8/site-packages (1.0.6) Requirement already satisfied: numpy in ./.local/lib/python3.8/site-packages (from zencad[gui]) (1.21.1) Requirement already satisfied: evalcache>=1.14.0 in ./.local/lib/python3.8/site-packages (from zencad[gui]) (1.14.0) Requirement already satisfied: psutil in ./.local/lib/python3.8/site-packages (from zencad[gui]) (5.8.0) Requirement already satisfied: pillow in /usr/lib/python3/dist-packages (from zencad[gui]) (7.0.0) Collecting PyQt5; extra == "gui" Downloading PyQt5-5.15.4-cp36.cp37.cp38.cp39-abi3-manylinux2014_x86_64.whl (8.3 MB) |████████████████████████████████| 8.3 MB 5.6 MB/s Collecting zenframe; extra == "gui" Downloading zenframe-1.1.1-py3-none-any.whl (28 kB) Collecting PyQt5-sip<13,>=12.8 Downloading PyQt5_sip-12.9.0-cp38-cp38-manylinux1_x86_64.whl (332 kB) |████████████████████████████████| 332 kB 3.4 MB/s Collecting PyQt5-Qt5>=5.15 Downloading PyQt5_Qt5-5.15.2-py3-none-manylinux2014_x86_64.whl (59.9 MB) |████████████████████████████████| 59.9 MB 324 kB/s Installing collected packages: PyQt5-sip, PyQt5-Qt5, PyQt5, zenframe WARNING: The scripts pylupdate5, pyrcc5 and pyuic5 are installed in '/home/(ктототам)/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. WARNING: The script zenframe is installed in '/home/(ктототам)/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed PyQt5-5.15.4 PyQt5-Qt5-5.15.2 PyQt5-sip-12.9.0 zenframe-1.1.1


~$ export PATH="$PATH:/home/(ктототам)/.local/bin" ~$ zencad и ГУИ запустилась, но при нажатии на кнопку "try to import libraries", вылетает в терминале опять:

LibraryInstaller test_third_libraries_import finished with exception: No module named 'OCC'

pythonocc import fault. test_third_libraries_import finished with exception: No module named 'OCC'

pythonocc import fault.

mirmik commented 3 years ago

Там ниже кнопочки которые должны эти либы поставить. А верхняя кнопочка просто проверяет, есть ли они в наличии.

solidboredom commented 3 years ago

Спасибо ! Заработала!

пришлось сделать еще три вещи:

поставить pyopengl , иначе уже после старта выплывала ошибка в консоли

создать .bashrc если файла не существует (а это часто) то ГУИ не могла в него писать LD_LIBRARY_PATH=

Traceback (most recent call last): File "/home/(xxxxx)/.local/lib/python3.8/site-packages/zencad/gui/libinstaller.py", line 106, in add_local_library_path_to_bashrc with open(os.path.expanduser("~/.bashrc"), "r") as f: FileNotFoundError: [Errno 2] No such file or directory: '/home/petka/.bashrc'

надо было:

touch .bashrc


самому в ручную внести в окружение, LD_LIBRARY_PATH и PATH хотя она там в env имелась имелась с тем же значением, но не работала даже после рестарта терминала,

не находя zencad или ругаясь:pythonocc founded: /home/petka/.local/lib/python3.8/site-packages/OCC/init.py.

OCCT loading fault.

видимо по чисто материалистически-эзотерическим причнинам.

пока в ручную их не установить

export PATH=$PATH:~/.local/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.local/lib/occt-7.4.0

и запустить:

zencad


solidboredom commented 3 years ago

Полный рецепт установки на убунту 20.04 такой, Хорошо бы его или подобноое в README:


sudo apt install python3-pip

sudo apt install qt5-default

python3 -m pip install pyopengl

python3 -m pip install zencad[gui]

export PATH=$PATH:~/.local/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.local/lib/occt-7.4.0

запускаем zencad

zencad

ГУИ стартует и мы игнорируя верхнюю кнопку, нажимаем на вторую кнопку "install pythonocc ...."

закрываем ГУИ

смотрим в терминал, получилось ли. (в гуи не всегда все строки вывода результата установки видны)

запускаем zencad еще раз

zencad

ГУИ стартует и мы нажимаем "install occt for current user (....)"

смотrим в терминал, получилось ли. (в гуи не всегда все строки вывода результата установки видны)

нажимаем "add ... to to .LD_LIBRARY_PATH "

закрываем ГУИ

закрываем терминал

exit

откриваем новый терминал и запускаем.

вводим опять:

export PATH=$PATH:~/.local/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.local/lib/occt-7.4.0

zencad

УРА!

mirmik commented 3 years ago

Ок. Обновлю Readme и некоторые скрипты.

solidboredom commented 3 years ago

супер! спасибо.