在Grumpy中安装python包

2024-09-29 00:20:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Fedora 25,安装方式如下:

git clone https://github.com/google/grumpy.git  
cd grumpy  
make  
export GOPATH=$PWD/build  
export PYTHONPATH=$PWD/build/lib/python2.7/site-packages 

还能够从一个简单的python文件创建Go二进制文件而没有任何问题:

^{pr2}$

不过,我不知道如何安装python包!简单的pip install没有成功。在

我试过virtualenv,但看起来也没用。我检查了grumpy build内部的site packages dir,其中只有以下内容:

ll build/lib/python2.7/site-packages/
> drwxr-xr-x. 4 root root 4096 Jul  4 12:13 grumpy

那么在Grumpy中应该如何安装python包呢?在


Tags: httpsgitbuildgithubcomclonelibpackages
1条回答
网友
1楼 · 发布于 2024-09-29 00:20:51

嗯。。。与自述文件所说的不同,这里有大量的standard library missing。所以很可能你不能。在

下面是我尝试使用go将pygments转换为可执行文件的过程。顺便说一下,它失败了。这基本上是一个手动的过程来获取一个包,并使用Grumpy生成它。在

我去了pypi,得到了{a3}。在

我跟着readme's

make
export PATH=$PWD/build/bin:$PATH
export GOPATH=$PWD/build
export PYTHONPATH=$PWD/build/lib/python2.7/site-packages

我试着做一些类似的事情:

^{pr2}$

这很管用。在

我解开了pypi文件,阅读了setup.py等,发现我主要对pygments.cmdline感兴趣。所以我把pygments目录复制到$GOPATH/src/__python__/.

然后,我试图将cmdline构建为一个模块,这样我就可以用go包装它,使之成为可执行文件,就像以前在bash脚本中包装它一样。在

grumpc -modname=pygments.cmdline \
  $GOPATH/src/__python__/pygments/cmdline.py \
> $GOPATH/src/__python__/pygments/cmdline/module.go

由于locale丢失,这没有成功。在

我换成了$GOPATH/src/__python__/pygments,并查找没有导入的文件:

cd $GOPATH/src/__python__/pygments
grep -cr '^ *\(from\|import\)' . >imports

我发现过滤器模块没有,所以:

grumpc -modname=pygments.filter filter.py >filter/module.go

因为这是有效的,我以为我在做一些事情,但我没有。这让我想到如果我只是先构建一些依赖性很少的东西,我就可以构建整个包(注意locale不是包的一部分,所以这是一个糟糕的计划):

# Oh, this doesn't really handle the base __init__.py file well.
for f in *.py */*.py; do F="${f%%.py}";
if [ "${f: -11}" != "__init__.py" ];
then
  mkdir -p "$F";
  [ ! -s $F/module.go ] && grumpc -modname=pygments.${F/\//.} $f > $F/module.go;
else
  F="${F%%__init__}";
  [ ! -s ${F}module.go ] && grumpc -modname=pygments.${F/\//.} $f > ./$F/module.go;
fi
done

下面是我编写native implementation thereof所需的初始模块的简短列表。在

colorama.initialise
codecs
chardet
pkg_resources
docutils
unicodedata
locale
ctags
subprocess
gzip
urllib
shutil
gzip

我还发现了其他几个错误:

<unknown>:118:2235-118:2245: error: unicode character out of range
line 101: node not yet implemented: Exec
line 12: future feature division not yet implemented by grumpy
RuntimeError: maximum recursion depth exceeded while calling a Python object

公平地说,有很多文件看起来没有问题(那些文件的大小有问题),但是有20个文件确实有问题,它们似乎包括命令行、核心格式化程序、lexer、plugin和主要实用程序(terminal、terminal256、bbcode、irc、mapping、rtf和svg格式化程序似乎没问题……):

$ wc `find . -name module.go`
    2023     7797    63728 ./token/module.go
       0        0        0 ./unistring/module.go
    4510    16633   149451 ./filters/module.go
    2221     7035    94627 ./lexers/idl/module.go
       0        0        0 ./lexers/_lua_builtins/module.go
     493     1941    18572 ./lexers/capnproto/module.go
     788     3165    28867 ./lexers/hexdump/module.go
    6437    22288   242059 ./lexers/pascal/module.go
     572     2208    21237 ./lexers/inferno/module.go
    1460     5853    60953 ./lexers/prolog/module.go
    1610     5918    62664 ./lexers/esoteric/module.go
     731     2700    27881 ./lexers/supercollider/module.go
    5950    23129   218602 ./lexers/parsers/module.go
    2579     7756   104501 ./lexers/_csound_builtins/module.go
   14141    49681   644896 ./lexers/lisp/module.go
    6336    23011   236369 ./lexers/modula2/module.go
    5287    19964   200365 ./lexers/asm/module.go
   10004    37737   340097 ./lexers/robotframework/module.go
       0        0        0 ./lexers/_sourcemod_builtins/module.go
    1621     6234    57562 ./lexers/textedit/module.go
     644     2399    24139 ./lexers/go/module.go
     350     1371    13898 ./lexers/apl/module.go
    1325     4984    46972 ./lexers/nix/module.go
    9008    34169   375371 ./lexers/scripting/module.go
    1684     6706    66923 ./lexers/archetype/module.go
     432     1690    16511 ./lexers/parasail/module.go
    5941    18213   301062 ./lexers/ncl/module.go
    4338    15189   259395 ./lexers/_cocoa_builtins/module.go
    2433     9545    90020 ./lexers/textfmts/module.go
    8056    29732   307645 ./lexers/python/module.go
    5293    19344   210921 ./lexers/css/module.go
    4641    16372   178991 ./lexers/c_like/module.go
    1731     6533    67410 ./lexers/felix/module.go
       0        0        0 ./lexers/_php_builtins/module.go
    1966     7720    72987 ./lexers/fantom/module.go
     311     1197    11568 ./lexers/trafficscript/module.go
     595     2238    22795 ./lexers/chapel/module.go
    7294    28597   273136 ./lexers/shell/module.go
     285     1138    10140 ./lexers/web/module.go
    1147     4478    43247 ./lexers/grammar_notation/module.go
    4999    19994   205998 ./lexers/haxe/module.go
    3382    12053   137873 ./lexers/theorem/module.go
     818     3115    30130 ./lexers/dalvik/module.go
    6599    24623   259510 ./lexers/perl/module.go
    1415     5699    54536 ./lexers/smalltalk/module.go
    2286     8370    84331 ./lexers/dylan/module.go
    1524     5900    59673 ./lexers/pawn/module.go
    6150    20492   311029 ./lexers/_vim_builtins/module.go
    1325     5164    52099 ./lexers/rust/module.go
     556     2137    20104 ./lexers/graph/module.go
     524     2098    19189 ./lexers/other/module.go
    2988    10857   123993 ./lexers/business/module.go
    5703    21448   206789 ./lexers/erlang/module.go
    2957     9869   126529 ./lexers/r/module.go
    3273     9848   139052 ./lexers/_asy_builtins/module.go
    4162    16299   158236 ./lexers/basic/module.go
    9823    38671   401800 ./lexers/jvm/module.go
     552     2175    21298 ./lexers/ambient/module.go
    1169     4612    42833 ./lexers/diff/module.go
    4003    14888   160168 ./lexers/objective/module.go
     638     2463    24234 ./lexers/elm/module.go
    1764     5371    71961 ./lexers/_tsql_builtins/module.go
    4680    18630   176165 ./lexers/html/module.go
     397     1581    14231 ./lexers/compiled/module.go
    3834    14988   143117 ./lexers/crystal/module.go
    1218     4584    44945 ./lexers/nimrod/module.go
    2411     7267   117452 ./lexers/_mql_builtins/module.go
    6289    24800   238668 ./lexers/haskell/module.go
    2682     9870   111225 ./lexers/factor/module.go
    2186     8504    81021 ./lexers/php/module.go
    1403     5406    53632 ./lexers/varnish/module.go
     364     1432    13878 ./lexers/rnc/module.go
     612     2355    23021 ./lexers/ooc/module.go
     188      740     6580 ./lexers/math/module.go
    2235     8347    82881 ./lexers/modeling/module.go
    2151     7910    87783 ./lexers/praat/module.go
       0        0        0 ./lexers/special/module.go
     251      993     8934 ./lexers/agile/module.go
    5161    19940   196827 ./lexers/dotnet/module.go
    1133     4277    43582 ./lexers/monte/module.go
    1324     5218    50039 ./lexers/typoscript/module.go
    1202     5339    60462 ./lexers/testing/module.go
     740     2725    27378 ./lexers/oberon/module.go
     796     2951    29702 ./lexers/verification/module.go
    3054    12135   114894 ./lexers/clean/module.go
    1171     4376    44599 ./lexers/tcl/module.go
    5643    21530   202343 ./lexers/markup/module.go
     865     3144    32057 ./lexers/ampl/module.go
    1289     5014    48411 ./lexers/bibtex/module.go
     989     3742    37888 ./lexers/qvt/module.go
   11296    44649   438089 ./lexers/int_fiction/module.go
     355     1392    13373 ./lexers/iolang/module.go
    4353    17287   170343 ./lexers/ml/module.go
    4231    12712   172022 ./lexers/_stata_builtins/module.go
     632     2272    23038 ./lexers/smv/module.go
    1393     4261    63346 ./lexers/_cl_builtins/module.go
    1545     5885    55706 ./lexers/make/module.go
    4918    16606   192919 ./lexers/matlab/module.go
    1645     5625    63597 ./lexers/sas/module.go
       0        0        0 ./lexers/_scilab_builtins/module.go
    5438    20671   209628 ./lexers/configs/module.go
     532     1948    19215 ./lexers/x10/module.go
    3570    13980   137719 ./lexers/rebol/module.go
    1862     6405    71722 ./lexers/fortran/module.go
   19878    76674   719037 ./lexers/templates/module.go
    3279     9851   165624 ./lexers/_openedge_builtins/module.go
    1069     3241    48798 ./lexers/_stan_builtins/module.go
     492     1819    18748 ./lexers/nit/module.go
     406     1591    15567 ./lexers/snobol/module.go
    2537     9157    99186 ./lexers/julia/module.go
    9952    29904   499664 ./lexers/_lasso_builtins/module.go
    2613     8174   119072 ./lexers/igor/module.go
    1190     4456    45298 ./lexers/urbi/module.go
    3312    12007   129704 ./lexers/hdl/module.go
     421     1666    34239 ./lexers/foxpro/module.go
    1227     5383    58804 ./lexers/automation/module.go
       0        0        0 ./lexers/_postgres_builtins/module.go
    6791    25704   260009 ./lexers/dsls/module.go
     291     1156    10516 ./lexers/text/module.go
    9626    38665   383525 ./lexers/javascript/module.go
    2551    10063    99066 ./lexers/csound/module.go
     483     1819    17444 ./lexers/roboconf/module.go
     577     2206    24072 ./lexers/ezhil/module.go
     771     3078    28434 ./lexers/resource/module.go
     731     2804    27243 ./lexers/whiley/module.go
       0        0        0 ./lexers/graphics/module.go
     521     1925    19467 ./lexers/eiffel/module.go
    4179    16387   156894 ./lexers/data/module.go
     856     3182    32625 ./lexers/j/module.go
     546     2165    22731 ./lexers/forth/module.go
   10209    41331   393029 ./lexers/webmisc/module.go
    1393     5279    56499 ./lexers/d/module.go
    2480     9288    91522 ./lexers/c_cpp/module.go
    1578     6503    62492 ./lexers/rdf/module.go
    5282    20171   299945 ./lexers/_mapping/module.go
     186      734     6614 ./lexers/functional/module.go
    1128     3921    43138 ./lexers/ecl/module.go
    5148    19594   192146 ./lexers/ruby/module.go
    2040     7593    81180 ./lexers/actionscript/module.go
    1974     7796    78115 ./lexers/installers/module.go
    1226     4725    48193 ./lexers/algebra/module.go
     590     2309    23425 ./lexers/console/module.go
       0        0        0 ./lexers/module.go
     639     2525    24688 ./lexers/stata/module.go
    7116    25919   255452 ./lexers/sql/module.go
       0        0        0 ./sphinxext/module.go
       0        0        0 ./util/module.go
    1482     5456    46562 ./regexopt/module.go
       0        0        0 ./lexer/module.go
       0        0        0 ./plugin/module.go
    1580     5904    52942 ./formatters/svg/module.go
    4294    16118   142678 ./formatters/terminal256/module.go
    1641     5938    53535 ./formatters/rtf/module.go
       0        0        0 ./formatters/latex/module.go
    2149     8026    70726 ./formatters/irc/module.go
       0        0        0 ./formatters/other/module.go
    1561     5851    52413 ./formatters/terminal/module.go
       0        0        0 ./formatters/html/module.go
       0        0        0 ./formatters/img/module.go
    1064     4241    38824 ./formatters/_mapping/module.go
    1091     3974    35174 ./formatters/bbcode/module.go
       0        0        0 ./formatters/module.go
       0        0        0 ./cmdline/module.go
    2164     7934    70484 ./style/module.go
     339     1364    11693 ./styles/xcode/module.go
     471     1922    16586 ./styles/vim/module.go
     290     1151     9947 ./styles/vs/module.go
     582     2426    20747 ./styles/pastie/module.go
     362     1458    12394 ./styles/bw/module.go
     493     2029    17533 ./styles/native/module.go
    1076     4521    37325 ./styles/paraiso_light/module.go
     566     2347    20186 ./styles/friendly/module.go
     483     1988    17060 ./styles/autumn/module.go
     647     2714    23016 ./styles/murphy/module.go
     330     1331    11549 ./styles/fruity/module.go
     383     1556    13367 ./styles/borland/module.go
     305     1237    10664 ./styles/algol_nu/module.go
     469     1928    16516 ./styles/trac/module.go
     556     2302    19786 ./styles/default/module.go
     887     3608    30851 ./styles/rainbow_dash/module.go
     224      875     7492 ./styles/abap/module.go
     855     3618    30861 ./styles/tango/module.go
     567     2347    20158 ./styles/emacs/module.go
     804     3371    27927 ./styles/arduino/module.go
     508     2093    18035 ./styles/perldoc/module.go
     559     2321    19905 ./styles/manni/module.go
    1076     4521    37315 ./styles/paraiso_dark/module.go
     304     1216    10415 ./styles/sas/module.go
     219      851     7439 ./styles/rrt/module.go
     647     2714    23036 ./styles/colorful/module.go
     194      747     6446 ./styles/igor/module.go
     871     3651    30445 ./styles/monokai/module.go
     818     3418    28958 ./styles/lovelace/module.go
     305     1238    10656 ./styles/algol/module.go
     702     2507    22631 ./styles/module.go
     263     1042     8927 ./styles/stata/module.go
       0        0        0 ./formatter/module.go
     785     2943    25598 ./filter/module.go
     461     1656    13491 ./modeline/module.go
    1023     3955    33738 ./scanner/module.go
     962     3670    30137 ./console/module.go
     761     2770    23417 ./module.go
  440346  1641915 17381149 total

我接着让util.py不再抱怨,因为它们是在try块或python3检查中使用的,并且有其他路径可以使用。在

然后我从pypi获得colorama并将colorama目录从tar移到__python__目录。在

这需要我删除ctypes的一些用法,并基本上清空win32.py文件。但在那之后,它确实很好地回应了:

for f in $GOPATH/build/src/__python__/colorama/*.py;
do
  F="${f%%.py}";
  if [ "${f: -11}" != "__init__.py" ];
  then
    mkdir -p "$F";
    [ ! -s $F/module.go ] && grumpc -modname=${F/\//.} $f > $F/module.go;
  else
    F="${F%%/__init__}";
    [ ! -s $F/module.go ] && grumpc -modname=${F/\//.} $f > $F/module.go;
   fi
done

现在我想我至少可以在tar文件的demo目录中运行一个demo。在

$ cat demo01.py |grumprun
…
grumpy.compiler.util.ImportError: line 12: no such module: fixpath
# removed the import of fixpath
$ cat demo01.py |grumprun
        Traceback (most recent call last):
  File "/var/folders/gd/q65byyhs54g3qknbyv5r7q8r0000gp/T/tmpVK_oyV/src/__python__/module.py", line 33, in <module>
    sys.stdout.write('%s%-7s' % (foreground, NAMES[foreground]))
NotImplementedError: conversion flags not yet supported
exit status 1

好吧,太好了,所以即使有些东西在标准库中,它的一部分也没有实现。这是有道理的。但现在我太沮丧了,不能继续下去了。在

好吧,演示2、3、4、6、7和8似乎有效。Demo 5在导入冲突中失败,可能是因为我在MacOS上,它可能在linux上工作。 {{cd16}并没有使所有的cd16}恢复到原来的状态。 enter image description here

相关问题 更多 >