python - Sådan downloades google kildekode for android

Indlæg af Hanne Mølgaard Plasc

Problem



Som du ved, er der en liste over flere hundrede projekter på https://android.googlesource.com/. Jeg vil gerne downloade dem alle i Windows-maskine. Ifølge Googles dokument, [38]


To install, initialize, and configure Repo:

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo


To clone the entire platform, install repo, and run:

mkdir mydroid
cd mydroid
repo init -u https://android.googlesource.com/platform/manifest
repo sync


I min maskine kan jeg dog ikke 'repo init' i Git Bash fordi det siger, at det ikke har python. Jeg har installeret python, men git bash genkender det ikke. Bemærk, at jeg også indstiller python-biblioteket til systembanen. Hvis nogen kan give et tip, vil jeg sætte pris på det. Tak


UPDATE: Jeg tror, ​​at det er problem med den nye version af Git Bash for Windows. Systembanen overhovedet ikke anvendes til Git Bash - jeg kunne nemt teste om systembanen fungerede med kommandoprompten. I hvert fald forsøgte jeg det i stedet, og det løb faktisk med fejl selvfølgelig.


  /c/python27/python.exe  ../bin/repo init -u https://android.googlesource.com/platform/manifest


Fejlmeddelelsen er


 $ /c/python27/python.exe ../bin/repo init -u https://android.googlesource.com/platform/manifest
 Traceback (most recent call last):
   File "../bin/repo", line 91, in <module>
    import readline
 ImportError: No module named readline


OKAY. Jeg bestod denne fejl ved at installere pyreadline i windows:


 easy\_install pyreadline


Hvis du fik en fejl, skal du installere setuptools fra


 http://pypi.python.org/pypi/setuptools#files


Og endelig kørte kommandoen igen for at få dette:


$ repo init -u https://android.googlesource.com/platform/manifest
fatal: unable to start d:myworkdevGoogleAndroidworking\_dir.repo
epo/main.py
fatal: [Errno 8] Exec format error

Bedste reference


Med et klik , download den nyeste kode som .tar.gz -fil, herfra
https://android.googlesource.com/platform/frameworks/base/+archive/master.tar.gz, android kunne findes under core mappe [39]


Rediger

Alternativ her:

http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/[40]


Vælg bare versionen og derefter en downloadindstilling indenfor.

Andre referencer 1


Hvis du f.eks. Overvejer dette andet program 'sympy', som også har brug for git bash og python, er det kun et spørgsmål at tilføje python til din PATH tidligere for at starte git bash sessionen. [41]



  Installer Python fra:



http://python.org/download/[42]



  ved at downloade 'Python 2.7 Windows installer' (eller Python 2.6 eller 2.5) og køre den.

   Tilføj python bibliotek til din systemmiljø sti variabel

  (My Computer -> Advanced -> Environment Variables -> Path -> Edit).



Bemærk, at repo scriptet skal være i stien, som nævnt på Version Control-siden af ​​android: [43]



  Repo er et lagerhåndteringsværktøj, som vi byggede oven på Git. Repo forener de mange Git-lagre, når det er nødvendigt, uploader til vores revisionsstyringssystem og automatiserer dele af Android-udviklingsprocessen.

  Repo er ikke beregnet til at erstatte Git, kun for at gøre det lettere at arbejde med Git i forbindelse med Android.

   Repo-kommandoen er et eksekverbart Python-script, som du kan placere hvor som helst i din vej .


Andre referencer 2


Dette svar forklarer, hvordan du løser denne fejl:


fatal: unable to start c:path.repo
epo/main.py
fatal: [Errno 8] Exec format error


Sammendrag: Jeg brugte endelig python pakket af Cygwin.

Detaljer: Nedenfor er den fulde historie.


Spidsen fra repo fejlsporing er at tilføje '/c/app/Python27/python ': [44]



  • linje 136 i v1.20

    REPO\_MAIN = '/c/app/Python27/python ' + S\_repo + '/main.py'

  • linje 735 i v1.20 (begyndelsen af ​​funktionen main)
    wrapper\_path = '/c/app/Python27/python ' + os.path.abspath(\_\_file\_\_)



Men vi får fejlen TypeError: coercing to Unicode: need string or buffer, NoneType found


Derfor tilbagekaldte jeg disse ændringer ovenfor og udførte de andre ændringer nedenfor (på version 1.20):



  • linje 136, erstattet enkelt skråstreg ved dobbelt tilbage-skråstreg:

    REPO\_MAIN = S\_repo + '\main.py'

  • linje 766, tilføjede python absolutte sti som første element i me:

        me = ['C:\app\Python27\python.exe', repo\_main,

        '--repo-dir=\%s' \% rel\_repo\_dir,

        '--wrapper-version=\%s' \% ver\_str,

        '--wrapper-path=\%s' \% wrapper\_path,

        '--']

  • linje 776, erstattet os.execv(repo\_main, me) af

    os.execv('C:\app\Python27\python.exe', me)



Men vi får stadig en fejl:


$ Traceback (most recent call last):
  File "c:path.repo
epomain.py", line 39, in <module>
    from subcmds.version import Version
  File "c:path.repo
eposubcmds\_\_init\_\_.py", line 36, in <module>
    ['\%s' \% name])
  File "c:path.repo
eposubcmdsforall.py", line 17, in <module>
    import fcntl
ImportError: No module named fcntl


Python v2.7 fcntl dokumentationen siger fcntl er kun tilgængelig for platform Unix. [45]


Endelig vendte jeg endelig tilbage alle ændringer i repo script og installerede Cygwin herunder sine python og git pakker: det lykkedes som en charme.


Men da symlinks simuleret af Cygwin ikke genkendes af MSysGit, skal vi bruge Cygwin git. Og GUI'er oven på git er ikke fuldt ud kompatible med Cygwin git ...


(se også mit andet indlæg)


 

Cygwin kan bruge native NTFS symlinks (bare indstil CYGWIN=winsymlinks:native og være Admin). Derfor kan MSysGit bruges og enhver anden GUI baseret på den: -)