Javascript library in Python benutzen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

Hallo :)

ich würde gerne eine Open Source Javascript, genauer Typescript library auf meinem Debian 8.1 System benutzen, kann aber nur Python coden.
Gibt es eine Möglichkeit die library und alle Funktionen in Python skripten zu verwenden?

Google bringt mich auf "PyV8". Ist das die Lösung? Oder nur begrenzt, bzw vllt doch nicht die Lösung? Bzw geht das überhaupt?

Für das tatsächlich coden suche ich aktuell einen Freelancer, doch bevor ich jemanden den auftrag erteile, würde ich gerne hier erfharen ob das überhaupt bzw mit PyV8 möglich ist, oder ob die mich über den Tisch ziehen wollen ;)
Gerne auch kurzen Kommentar dazu, wie aufwendig das ganze wäre, damit ich den Preis vernünftig wählen kann.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Serpens66: PyV8 scheint tot zu sein, also keine Option. Generell ist das mischen von Skriptsprachen eher problematisch, was Stabilität, Wartbarkeit und Fehlersuche betrifft. Du hast also drei Möglichkeiten: Suche und finde eine Python-Bibliothek, die das selbe oder was ähnliches macht. Lerne Javascript und schreibe alles mit Javascript. Lerne Javascript und übersetze die Bibliothek nach Python oder schreib einfach die nötige Funktionalität in Python neu.

Um welche Bibliothek handelt es sich denn?
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

Man möchte mir nun folgendes andrehen:

Code: Alles auswählen

import dukpy

script = open("typescript_script.ts", "r")

script_content = script.read()

jsx = dukpy.typescript_compile(script_content)

print jsx
Angeblich soll das funktionieren.
Meinungen dazu?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

dukpy is currently not production ready and might actually crash
soll man da noch mehr dazu schreiben?
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

Sirius3 hat geschrieben:
dukpy is currently not production ready and might actually crash
soll man da noch mehr dazu schreiben?
war auch mein Argument, aber angeblich hat derjenige es getestet und es funktioniert..
Nun liegt es an mir es ebenfalls zu testen und ihn nur zu bezahlen, wenns auch tatsächlich funzt..

Unter Windows streikt allerdings schon die Installation.. (oder sind die warnungen und fehler nicht schlimm?) werde es gleich noch unter debian versuchen:
PS C:\Users\Serp\desktop\dukpy-master> python setup.py install
C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'entry_points'
warnings.warn(msg)
C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'install_requires'
warnings.warn(msg)

running install
running build
running build_py
creating build
creating build\lib.win32-3.4
creating build\lib.win32-3.4\dukpy
copying dukpy\babel.py -> build\lib.win32-3.4\dukpy
copying dukpy\coffee.py -> build\lib.win32-3.4\dukpy
copying dukpy\evaljs.py -> build\lib.win32-3.4\dukpy
copying dukpy\install.py -> build\lib.win32-3.4\dukpy
copying dukpy\lessc.py -> build\lib.win32-3.4\dukpy
copying dukpy\module_loader.py -> build\lib.win32-3.4\dukpy
copying dukpy\nodelike.py -> build\lib.win32-3.4\dukpy
copying dukpy\run.py -> build\lib.win32-3.4\dukpy
copying dukpy\tsc.py -> build\lib.win32-3.4\dukpy
copying dukpy\__init__.py -> build\lib.win32-3.4\dukpy
creating build\lib.win32-3.4\dukpy\webassets
copying dukpy\webassets\babelfilter.py -> build\lib.win32-3.4\dukpy\webassets
copying dukpy\webassets\jsxfilter.py -> build\lib.win32-3.4\dukpy\webassets
copying dukpy\webassets\lessfilter.py -> build\lib.win32-3.4\dukpy\webassets
copying dukpy\webassets\typescriptfilter.py -> build\lib.win32-3.4\dukpy\webassets
copying dukpy\webassets\__init__.py -> build\lib.win32-3.4\dukpy\webassets
creating build\lib.win32-3.4\dukpy\jscore
copying dukpy\jscore\fs.js -> build\lib.win32-3.4\dukpy\jscore
copying dukpy\jscore\path.js -> build\lib.win32-3.4\dukpy\jscore
copying dukpy\jscore\punycode.js -> build\lib.win32-3.4\dukpy\jscore
copying dukpy\jscore\querystring.js -> build\lib.win32-3.4\dukpy\jscore
copying dukpy\jscore\url.js -> build\lib.win32-3.4\dukpy\jscore
creating build\lib.win32-3.4\dukpy\jsmodules
copying dukpy\jsmodules\babel-6.14.0.min.js -> build\lib.win32-3.4\dukpy\jsmodules
copying dukpy\jsmodules\coffeescript.js -> build\lib.win32-3.4\dukpy\jsmodules
copying dukpy\jsmodules\semver.js -> build\lib.win32-3.4\dukpy\jsmodules
copying dukpy\jsmodules\typescriptServices.js -> build\lib.win32-3.4\dukpy\jsmodules
creating build\lib.win32-3.4\dukpy\jsmodules\react
copying dukpy\jsmodules\react\react-dom-server.js -> build\lib.win32-3.4\dukpy\jsmodules\react
copying dukpy\jsmodules\react\react.js -> build\lib.win32-3.4\dukpy\jsmodules\react
creating build\lib.win32-3.4\dukpy\jsmodules\less
creating build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\contexts.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\import-manager.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\index.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\less-error.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\logger.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\parse-tree.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\parse.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\plugin-manager.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\render.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\source-map-builder.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\source-map-output.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\transform-tree.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
copying dukpy\jsmodules\less\less\utils.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less
creating build\lib.win32-3.4\dukpy\jsmodules\less\less-node
copying dukpy\jsmodules\less\less-node\environment.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less-node
copying dukpy\jsmodules\less\less-node\file-manager.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less-node
copying dukpy\jsmodules\less\less-node\fs.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less-node
copying dukpy\jsmodules\less\less-node\image-size.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less-node
copying dukpy\jsmodules\less\less-node\index.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less-node
copying dukpy\jsmodules\less\less-node\lessc-helper.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less-node
copying dukpy\jsmodules\less\less-node\plugin-loader.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less-node
copying dukpy\jsmodules\less\less-node\url-file-manager.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less-node
creating build\lib.win32-3.4\dukpy\jsmodules\less\less\data
copying dukpy\jsmodules\less\less\data\colors.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\data
copying dukpy\jsmodules\less\less\data\index.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\data
copying dukpy\jsmodules\less\less\data\unit-conversions.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\data
creating build\lib.win32-3.4\dukpy\jsmodules\less\less\environment
copying dukpy\jsmodules\less\less\environment\abstract-file-manager.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\
environment
copying dukpy\jsmodules\less\less\environment\environment-api.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\enviro
nment
copying dukpy\jsmodules\less\less\environment\environment.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\environmen
t
copying dukpy\jsmodules\less\less\environment\file-manager-api.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\envir
onment
creating build\lib.win32-3.4\dukpy\jsmodules\less\less\functions
copying dukpy\jsmodules\less\less\functions\color-blending.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\functions

copying dukpy\jsmodules\less\less\functions\color.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\functions
copying dukpy\jsmodules\less\less\functions\data-uri.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\functions
copying dukpy\jsmodules\less\less\functions\default.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\functions
copying dukpy\jsmodules\less\less\functions\function-caller.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\function
s
copying dukpy\jsmodules\less\less\functions\function-registry.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\functi
ons
copying dukpy\jsmodules\less\less\functions\index.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\functions
copying dukpy\jsmodules\less\less\functions\math-helper.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\functions
copying dukpy\jsmodules\less\less\functions\math.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\functions
copying dukpy\jsmodules\less\less\functions\number.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\functions
copying dukpy\jsmodules\less\less\functions\string.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\functions
copying dukpy\jsmodules\less\less\functions\svg.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\functions
copying dukpy\jsmodules\less\less\functions\types.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\functions
creating build\lib.win32-3.4\dukpy\jsmodules\less\less\parser
copying dukpy\jsmodules\less\less\parser\chunker.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\parser
copying dukpy\jsmodules\less\less\parser\parser-input.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\parser
copying dukpy\jsmodules\less\less\parser\parser.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\parser
creating build\lib.win32-3.4\dukpy\jsmodules\less\less\plugins
copying dukpy\jsmodules\less\less\plugins\function-importer.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\plugins
creating build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\alpha.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\anonymous.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\assignment.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\attribute.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\call.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\color.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\combinator.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\comment.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\condition.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\debug-info.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\detached-ruleset.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\dimension.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\directive.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\element.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\expression.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\extend.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\import.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\index.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\javascript.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\js-eval-node.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\keyword.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\media.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\mixin-call.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\mixin-definition.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\negative.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\node.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\operation.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\paren.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\quoted.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\rule.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\ruleset-call.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\ruleset.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\selector.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\unicode-descriptor.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\unit.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\url.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\value.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
copying dukpy\jsmodules\less\less\tree\variable.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\tree
creating build\lib.win32-3.4\dukpy\jsmodules\less\less\visitors
copying dukpy\jsmodules\less\less\visitors\extend-visitor.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\visitors
copying dukpy\jsmodules\less\less\visitors\import-sequencer.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\visitors

copying dukpy\jsmodules\less\less\visitors\import-visitor.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\visitors
copying dukpy\jsmodules\less\less\visitors\index.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\visitors
copying dukpy\jsmodules\less\less\visitors\join-selector-visitor.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\vis
itors
copying dukpy\jsmodules\less\less\visitors\set-tree-visibility-visitor.js -> build\lib.win32-3.4\dukpy\jsmodules\less\le
ss\visitors
copying dukpy\jsmodules\less\less\visitors\to-css-visitor.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\visitors
copying dukpy\jsmodules\less\less\visitors\visitor.js -> build\lib.win32-3.4\dukpy\jsmodules\less\less\visitors
running build_ext
building 'dukpy._dukpy' extension
error: Unable to find vcvarsall.bat
PS C:\Users\Serp\desktop\dukpy-master>
.. ne modul lässt sich nicht importieren nach dieser installation..
(wie mache ich diese teilweise installation rückgängig? )
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dir fehlt visual studio. Das kann man aber mit der Fehlermeldung auch mal ergoogeln.

Der ganze Ansatz klingt komisch. Was kann die typescript Library denn, das Python nicht kann?
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

__deets__ hat geschrieben:Dir fehlt visual studio. Das kann man aber mit der Fehlermeldung auch mal ergoogeln.

Der ganze Ansatz klingt komisch. Was kann die typescript Library denn, das Python nicht kann?
ah okay, danke.
letzlich laufen solls ja auf Debian, ich teste nur immer lieber unter windows.
Auf Debian scheint es problemlos zu laufen.

Es ist keine "normale" library die irgendwelche Standarddinge macht.
Sondern es ist eine von einer website veröffentlichte library die extra auf deren service zugeschnitten ist, die angeblich supertoll sein soll und vieles von dem was ich selbst schon mache, vereinfacht. Die würde ich gerne austesten was die so kann und ob ich damit vllt teile meines eigenen Codes ersetze.
Ich kann aber leider nicht veröffentlichen worum es geht (und diejenigen die es wissen oder ahnen sollen es bitte auch nicht öffentlich posten)
nezzcarth
User
Beiträge: 1632
Registriert: Samstag 16. April 2011, 12:47

Serpens66 hat geschrieben: Es ist keine "normale" library die irgendwelche Standarddinge macht.
Sondern es ist eine von einer website veröffentlichte library die extra auf deren service zugeschnitten ist, die angeblich supertoll sein soll und vieles von dem was ich selbst schon mache, vereinfacht. Die würde ich gerne austesten was die so kann und ob ich damit vllt teile meines eigenen Codes ersetze.
Na ja, wenn du aus der Library nur eine handvoll Funktionen brauchst, die relativ autonom verwendbar sind und die abhängig von ein paar Parametern etwas zurückliefern, das sich gut serialisieren und in Python einlesen lässt, wäre eine Option vielleicht, einen simplen Wrapper in Javascript/Typescript zu basteln, der diese nach außen hin über eine geeignete Schnittstelle verfügbar macht. Ob sich das lohnt hängt wie gesagt sehr davon ab, wie die Bibliothek strukturiert ist und um welchen Umfang es sich handelt. Wenn da komplexere Verflechtungen zwischen Objekten oder so etwas bestehen, wird es schnell lästig.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Serpens66: am einfachsten wäre es doch, eine Python-Bibliothek zu suchen, die das selbe macht.
Antworten