Open skipik opened 4 years ago
Install 'future' package using 'pip install future' command.
I will need to update the documentation
Works now. Thanks!
Also can`t build use python Python 2.7.18 final Release date: 2020-04-19 - is not existing version ...:mad;
0ce1920..c8ab1cb master -> origin/master 5:42 Fetching submodule dragndrop/sconsparts From https://bitbucket.org/karbazol/parts be98057..bad77c9 master -> origin/master Updating c63601b..c8ab1cb Fast-forward README.md | 5 ++--- dragndrop/.gitignore | 4 +++- dragndrop/.ycm_extra_conf.py | 30 ++++++++++++++++++++++++++++++ dragndrop/SConstruct | 2 +- dragndrop/dll/tests.parts | 3 ++- dragndrop/parts-site/pieces/dirinstall.py | 2 +- dragndrop/parts-site/pieces/lng.py | 12 +++++++----- dragndrop/parts-site/pieces/svnrev.py | 2 +- dragndrop/plugin/code.parts | 3 ++- dragndrop/plugin/tests.parts | 3 ++- dragndrop/sconsparts | 2 +- 11 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 dragndrop/.ycm_extra_conf.py Already up to date.
$ SCons CONFIG=release build:: scons: Reading SConscript files ... AttributeError: 'module' object has no attribute 'symlink_scanner': File ".\Drag-n-Drop\dragndrop\SConstruct", line 6: from parts import File "C:\Python27\lib\site-packages\parts__init__.py", line 11: from main import File "C:\Python27\lib\site-packages\parts\main.py", line 34: import pieces File "C:\Python27\lib\site-packages\parts\pieces__init.py", line 18: loadAllPieces() File "C:\Python27\lib\site-packages\parts\pieces\init__.py", line 16: load_module.load_module([directory], name, 'pieces') File "C:\Python27\lib\site-packages\parts\load_module.py", line 95: mod = imp.load_module(modname, file, path1, desc) File "C:\Python27\lib\site-packages\parts\pieces\setrpath.py", line 108: target_scanner=symlinks.symlink_scanner,
......
А мы ещё и powershell.exe хотим типа прописано, а мы в упор не видим.:) И между прочим рабочий кад с данной версией змия полетел в Тартар - но обновитть-то ради гемора свято!. Хорошо на одной машине, а то б кирдык листы 16 х А0 чертить-кленить-сканить....
Антиресно, что ей ещё надыть, с учётом того что повершелл в пути , но мы его в упор не видим ибо зело кривы:
Даже ln -f "C:/Windows/SysWOW64/WindowsPowerShell/v1.0/powershell.exe" powershell.exe из змеиного каталога не помогаютЪ - ентот модный галстук столь же слеп, сколь и бестолков, зато ломать работавшее - да енто мы с радостью! Где б нагадить поболе!?
Только что установил Python 2.7.18 вот отсюда: https://www.python.org/downloads/release/python-2718/ добавил туда future и scons. Запустил команду 'c:\Python27\Scripts\scons -j8 .' чтобы убедиться, что нужный питон подхватится. Всё построилось без всяких PowerShell'ов. Единственное, я строил виндовым питоном, а не гитовским, не убунтовским, не cygwin'овским, не msys'овским.
У меня вс одно выводится:
И ещё CAD чинить, а он капризен....
Им же и делал, но всё одно сия чертовщина лезет:( :
вместе с логом alllog.txt
Похоже на вирусню какую-то. Потому что питону этот powershell.exe совсем не нужен. Проверь "Планировщик задач", не прописан ли у тебя там этот powershell.exe
Сейчас погляжу, но похоже снова вылезли следы сбоя WSH. Долго тогда пришлось чинить....
На совсем иной машине с виндовым питоном 2.7.18 х64 сделано:
easy_install future easy_install SCons git submodule update --init SCons CONFIG=release build:: scons: done reading SConscript files. Parts: Updating disk Parts: Updating disk - Done Не удается найти файл powershell.exe. Parts: Loaded 22 Parts Parts: Processing post logic queue Parts: Processing post logic queue finished! scons: Building targets ... и не собирается - лог:
с картинкой в конце:
так что это "особенности самой совершенной оси в мире"лезут:) кад я кстати до сих пор не восстановил, а про его библиотеки кои подключать не один день даже не думал. Зато пара жизненно-важных геморроев прилитела - карантин, заняться мне больше нечем....:mad:
Тут и кроме доки есть куча ошибок сборки. Попробовал собрать из VC++2015 - его IDE пишет итог сборки: успешно 2 с ошибкой 3 пропущено 0, ладно, зову VC++2017 v15.9.23 и тот собирает успешно, и кстати сконс его у меня зовёт. Вот что 2015 в логи нам говорит: Вывод-сборки_x64.txt и Вывод-сборки_x86.txt, и сконс - SCons_log.txt.
А вот дальше самое интересное - откуда ноги поверщелла растут, по крайней мере я так считаю - лог грепа Grep.txt так как он только тут появляется и только для ... VC++2017/2019 которые все операции через него вместо CMD выполняют - ведь в десятке CMD нет, ибо там повершелл, а кроме десятки других осей на свете нет, посему повершелл ищем, правда неважно где, но ищем.:) Пока всё на сию забаву кажет.
Едем дальше, видим ошибку в начале языковых файлов - код (239,187,191)
.Language=..... не что иное как записанный в DC ЮНИКОДЕ БОМ - 0xEFBBBF и если его не убрать, то языковые модули "плывут" - выводятся случйным алфавитом.
Ну факт что на одной машине собирается, на второй с аналогичными настройками нет .... с ним я пока и сам не понял что делать и как починить. ОС семёрка СП1 х64 на всех, но чудеса у машин разные...
Ну и я немного редме.мд поправил по результам ремонта, не окончательно, но вышло так:
Это плагин, позволяющий таскать файлы с и на фар.
English version
Building the plug-in
Before you build the plug-in run
git submodule update --init git submodule update --recursive
to make sure you have downloaded Parts and Tut framework to the repository.
To control build process I use SCons a software construction tool which can be treated as advanced 'Make' utility. It is written in Python and allows you to build software for different platforms in a single run. To run SCons you need Python 3.8.1 to be installed on your machine. After you have download and installed Python you can install SCons by running command:
easy_install parts easy_install SCons
Version 3.1.2 worked for me.
The plug-ins code is built using MSVC 2017 at least. You need to install it.
After you have set up the environment go to
dragndrop
directory and run command:SCons CONFIG=release build::
You can specify
-j N
option where N is number of CPUs installed on your machine. The option will make SCons build the plug-in in multiple threads.MSVC 2017 only Compilation
If you don't want to play with Python, SCons, and Parts you can try
dragndrop.sln
file located indragndrop/msvs2015
directory.
(.тхт чтобы в аттач влезть)...
Готовые бинарники с .pdb - drgndrop_bin.zip. Минут тридцать у себя гонял - на семёрке работают, собраны сконсом....
Строчка с easy_install parts
не нужна. Партсы должны локальные подхватываться.
Дожны, но не подхватились, Пока только на одно машине собираемо, вторая только ошибки пишет. Буду дальше искать....
Похоже всё упирается в UTF-8 в коде ибо "Не может код на не аглицком с людьми общаться!";
scons: * [_build\release_win32-x86\hook.code_x86\hook_x86.dll] UnicodeDecodeError : 'ascii' codec can't decode byte 0xd1 in position 3: ordinal not in range(128) Traceback (most recent call last): File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Taskmaster.py", line 255, in execute self.targets[0].build() File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Node__init__.py", line 766, in build self.get_executor()(self, *kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Executor.py", line 397, in call return _do_execute_map[self._do_execute](self, target, kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Executor.py", line 128, in execute_action_liststatus = act(args, kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Action.py", line 1292, in call show, execute, chdir, executor) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Action.py", line 1120, in call return c.call(self, target, source, env, *args, **kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Action.py", line 1053, in call show, execute, chdir, executor) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Action.py", line 1292, in call show, execute, chdir, executor) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Action.py", line 708, in call stat = self.execute(target, source, env, executor=executor) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Action.py", line 952, in execute result = spawn(shell, escape, cmd_line[0], cmd_line, ENV) File "sconsparts/src\parts\part_logger.py", line 148, in call output.TaskEnd(id, ret) File "sconsparts/src\parts\part_logger.py", line 195, in TaskEnd self.other_out.End(taskId, exitCode) File "sconsparts/src\parts\part_logger.py", line 356, in End s = "".join(content for (text_type, content) in self.cache.pop(id, []) UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 3: ordinal not in range(128) scons: building terminated because of errors. Parts: Error!: Summary: 1 build failure detected during build Part:"hook.code_x86" Target:"win32-x86" Config:"release" Node:"_build\release_win32-x86\hook.code_x86\hook_x86.dll"
readme.txt, как тут поправить? Явно змий глючит, сносил-чистил ОС, переставлял, да толку....
Это партсы нужно править. Я этим сейчас занимаюсь. Чтобы не воспроизводилось, студию нужно на английский язык переключить.
Я только что обновил локальные партсы. Должно теперь работать после команд:
git pull
git submodule update --init
git submodule update --recursicve
Опять та же картинкаю Вот полный вывод консоли:
scons: Reading SConscript files ... scons: done reading SConscript files. Parts: Updating disk Parts: Updating disk - Done Не удается найти файл powershell.exe. Parts: Loaded 22 Parts Parts: Processing post logic queue Parts: Processing post logic queue finished! scons: Building targets ... "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14 .16.27023\bin\HostX86\x86\link.EXE" /nodefaultlib /INCREMENTAL:NO /OPT:REF,ICF=4 /SUBSYSTEM:WINDOWS,5.01 /entry:DllMain /dll /out:_build\release_win32-x86\hook. code_x86\hook_x86.dll /implib:_build\release_win32-x86\hook.code_x86\hook_x86.li b /LIBPATH:_build\release_win32-x86\hook.code_x86 /LIBPATH:hook /LIBPATH:_sdk\re lease_win32-x86_default\common_2.0.0_af7d\release_win32-x86\lib /LIBPATH:_sdk\re lease_win32-x86_default\dll_2.0.0_af7d\release_win32-x86\lib commonx86.lib dll x86.lib kernel32.lib user32.lib shlwapi.lib ole32.lib advapi32.lib /PDB:_build\r elease_win32-x86\hook.code_x86\hook_x86.dll.pdb /DEBUG _build\release_win32-x86\ hook.code_x86\src\hldrapi.obj _build\release_win32-x86\hook.code_x86\src\hook.ob j _build\release_win32-x86\hook.code_x86\src\thrdfltr.obj _build\release_win32-x 86\hook.code_x86\hook.code_x86_version_info.res libcmt.lib libcpmt.lib libcpmt1. lib Microsoft (R) Incremental Linker Version 14.16.27039.0 Copyright (C) Microsoft Corporation. All rights reserved.
╤ючфрхЄё сшсышюЄхър _build\release_win32-x86\hook.code_x86\hook_x86.lib ш юс ·хъЄ _build\release_win32-x86\hook.code_x86\hook_x86.exp scons: * [_build\release_win32-x86\hook.code_x86\hook_x86.dll] UnicodeDecodeEr ror : 'ascii' codec can't decode byte 0xd1 in position 3: ordinal not in range(1 28) Traceback (most recent call last): File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Taskmast er.py", line 255, in execute self.targets[0].build() File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Node__i nit__.py", line 766, in build self.get_executor()(self, *kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Executor .py", line 397, in call return _do_execute_map[self._do_execute](self, target, kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Executor .py", line 128, in execute_action_list status = act(args, kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Action.p y", line 1292, in call show, execute, chdir, executor) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Action.p y", line 1120, in call return c.call(self, target, source, env, *args, **kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Action.p y", line 1053, in call show, execute, chdir, executor) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Action.p y", line 1292, in call show, execute, chdir, executor) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Action.p y", line 708, in call stat = self.execute(target, source, env, executor=executor) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Action.p y", line 952, in execute result = spawn(shell, escape, cmd_line[0], cmd_line, ENV) File "sconsparts/src\parts\part_logger.py", line 148, in call output.TaskEnd(id, ret) File "sconsparts/src\parts\part_logger.py", line 195, in TaskEnd self.other_out.End(taskId, exitCode) File "sconsparts/src\parts\part_logger.py", line 356, in End s = "".join(content for (text_type, content) in self.cache.pop(id, []) UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 3: ordinal not in range(128) scons: building terminated because of errors. Parts: Error!: Summary: 1 build failure detected during build Part:"hook.code_x86" Target:"win32-x86" Config:"release" Node:"_build\release_win32-x86\hook.code_x86\hook_x86.dll"
А этот вариант собирается - drag-n-drop_3.0.85.4700_working.tar.xz в VC++ 2017 и питон 2.7.18.
Прошу простить за сырую копию - уже в глазах рябит...
Почему-то модули не обновились. Сейчас должно сработать. Обнови модули
git submodule update --init --recursive
Обновил, но не собирается с ошибкой ANSI декодера. Для теста приспособил такой батник:
@echo off
git pull -f
git submodule update --init --recursive
easy_install SCons
cd /d dragndrop
start /I scons CONFIG=release build::
exit
а если берём за основу тот архив, то собирается только в одном каталоге G:\dev\check, в любом ином в консоли вижу:
scons: Reading SConscript files ... scons: done reading SConscript files. Parts: Updating disk Parts: Updating disk - Done Не удается найти файл powershell.exe. UnicodeDecodeError: 'ascii' codec can't decode byte 0x8d in position 0: ordinal not in range(128): File "F:\Tmp\7\dragndrop\plugin\plugin.parts", line 7: TARGET_PLATFORM = 'win32-x86') File "sconsparts/src\parts\parts.py", line 59: kw File "sconsparts/src\parts\part_manager.py", line 506: self.LoadPart(tmp) File "sconsparts/src\parts\part_manager.py", line 323: pobj.ReadFile() File "sconsparts/src\parts\pnode\part.py", line 1067: exports=export_map File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Script\S Conscript.py", line 597: return _SConscript(self.fs, *files, *subst_kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Script\S Conscript.py", line 286: exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals) File "F:\Tmp\7\dragndrop\plugin\code.parts", line 11: conf = Environment().Configure() File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Environm ent.py", line 990: apply_tools(self, tools, toolpath) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Environm ent.py", line 102: env.Tool(tool) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Environm ent.py", line 1810: tool(self) File "sconsparts/src\parts\overrides\tool.py", line 141: self.generate(env, args, kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\def ault.py", line 41: SCons.Tool.Tool(t)(env) File "sconsparts/src\parts\overrides\tool.py", line 141: self.generate(env, *args, **kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\msl ink.py", line 314: msvc_setup_env_once(env) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\MSC ommon\vc.py", line 695: msvc_setup_env(env) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\MSC ommon\vc.py", line 814: d = msvc_find_valid_batch_script(env,version) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\MSC ommon\vc.py", line 762: d = script_env(vc_script, args=arg) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\MSC ommon\vc.py", line 621: stdout = common.get_output(script, args) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\MSC ommon\common.py", line 238: sys.stderr.write(stderr) File "sconsparts/src\parts\reporter.py", line 37: return self.outfunc(msg=str) File "sconsparts/src\parts\reporter.py", line 318: self.logger.logerr(msg) File "F:\Tmp\7\dragndrop\sconsparts\src\parts\loggers\text.py", line 25: self.m_file.write(msg) File "C:\Python27\lib\codecs.py", line 708: return self.writer.write(data) File "C:\Python27\lib\codecs.py", line 369: data, consumed = self.encode(object, self.errors)
Склонировал репо заново, запустил батник:
scons: Reading SConscript files ... scons: done reading SConscript files. Parts: Updating disk Parts: Updating disk - Done Не удается найти файл powershell.exe. UnicodeDecodeError: 'ascii' codec can't decode byte 0x8d in position 0: ordinal not in range(128): File "F:\Tmp\7\dnd\dragndrop\plugin\plugin.parts", line 7: TARGET_PLATFORM = 'win32-x86') File "sconsparts/src\parts\parts.py", line 59: kw File "sconsparts/src\parts\part_manager.py", line 506: self.LoadPart(tmp) File "sconsparts/src\parts\part_manager.py", line 323: pobj.ReadFile() File "sconsparts/src\parts\pnode\part.py", line 1067: exports=export_map File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Script\S Conscript.py", line 597: return _SConscript(self.fs, *files, *subst_kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Script\S Conscript.py", line 286: exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals) File "F:\Tmp\7\dnd\dragndrop\plugin\code.parts", line 11: conf = Environment().Configure() File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Environm ent.py", line 990: apply_tools(self, tools, toolpath) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Environm ent.py", line 102: env.Tool(tool) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Environm ent.py", line 1810: tool(self) File "sconsparts/src\parts\overrides\tool.py", line 141: self.generate(env, args, kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\def ault.py", line 41: SCons.Tool.Tool(t)(env) File "sconsparts/src\parts\overrides\tool.py", line 141: self.generate(env, *args, **kw) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\msl ink.py", line 314: msvc_setup_env_once(env) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\MSC ommon\vc.py", line 695: msvc_setup_env(env) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\MSC ommon\vc.py", line 814: d = msvc_find_valid_batch_script(env,version) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\MSC ommon\vc.py", line 762: d = script_env(vc_script, args=arg) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\MSC ommon\vc.py", line 621: stdout = common.get_output(script, args) File "c:\python27\lib\site-packages\scons-3.1.2-py2.7.egg\scons\SCons\Tool\MSC ommon\common.py", line 238: sys.stderr.write(stderr) File "sconsparts/src\parts\reporter.py", line 37: return self.outfunc(msg=str) File "sconsparts/src\parts\reporter.py", line 318: self.logger.logerr(msg) File "F:\Tmp\7\dnd\dragndrop\sconsparts\src\parts\loggers\text.py", line 25: self.m_file.write(msg) File "C:\Python27\lib\codecs.py", line 708: return self.writer.write(data) File "C:\Python27\lib\codecs.py", line 369: data, consumed = self.encode(object, self.errors)
не могу понять, чего ему не хватает?
Отыскал таки условия сборки - нужен этот архив, который распаковывается в рабочую копию и после запускается build.cmd - Drag-n-Drop.zip . С теми модулями что приходят с репозиториев не собирается. Видимо в них "ошибки" сидят...
Поправил сборочный батник:
@echo off
git pull
git submodule update --recursive --init
easy_install SCons
cd /d dragndrop
rd /s/q _build
rd /s/q _sdks
rd /s/q install
del /f/q ".sconsign.dblite"
scons CONFIG=release build::
exit
Подсказка - в случае имён, начинающихся с точки ( UNIX аналог файлового атрибута "скрытый") имя объекта должны быть в кавычках т.к. иначе WinAPI отбрасывает ведущую "." и ОС не находит объект.
Важно!
Сразу после обновления исходников с Git c63601bb удаляем \dragndrop\sconsparts и распаковываем архив с соблюдением структуры каталогов - если останется старый sconsparts плагин не соберётся с выводом сообщения об ошибке декодера. Этой ошибки нет в версии 0.11.0, а с любой иной получим аварийное завершение сборки....
Собрал им плагин, с моим архивом собирается всё, повершелл ищет VC++2017, но это не важно. можно конечно кинуть на него симлинк, да надо? Функции работы с симлинками в в АПИ требуют привилегий админа, можно и кнопку нажать.:)
После сборки проверил на новой копии фар-а запущенной из под шелла после завершения предыдущей и выгрузки всех её модулей. Плагин запустился из тест-копии, работает. Проверял копированием развёрнутой PAF копии LibreOffice 6.4.3.2 как на панель far так и из него в окно Проводника с последующим сравнением по SHA-256 - ошибок не получил.
$ SCons CONFIG=release build:: scons: Reading SConscript files ... ModuleNotFoundError: No module named 'future': File "C:\Soft\fardev\far-drag-n-drop-plugin\dragndrop\SConstruct", line 6: from parts import * File "sconsparts/src\parts\__init__.py", line 8: from future import standard_library
That's what I get after SCons CONFIG=release build:: command.