2010-10-25 8 views
57

Po zainstalowaniu Pythona 2.7 w systemie Windows XP, a następnie ręcznego ustawienia %PATH% na python.exe (dlaczego program instalacyjny Pythona nie może tego zrobić?), A następnie zainstalowanie setuptools 0.6c11 (dlaczego nie robi tego instalator python?), a następnie ręcznie ustawiając %PATH% na easy_install.exe (dlaczego nie robi tego instalator?), w końcu próbowałem zainstalować pakiet python z easy_install, ale easy_install nie powiodło się, gdy nie mógł " t zainstaluj pakiet pywin32, który jest zależnością. W jaki sposób mogę ułatwić instalację easy_install w systemie Windows XP? Awaria następuje:Jak używać "łatwej do zainstalowania" Pythona w systemie Windows ... to nie jest takie łatwe

C:\>easy_install winpexpect 
Searching for winpexpect 
Best match: winpexpect 1.4 
Processing winpexpect-1.4-py2.7.egg 
winpexpect 1.4 is already the active version in easy-install.pth 

Using c:\python27\lib\site-packages\winpexpect-1.4-py2.7.egg 
Processing dependencies for winpexpect 
Searching for pywin32>=214 
Reading http://pypi.python.org/simple/pywin32/ 
Reading http://sf.net/projects/pywin32 
Reading http://sourceforge.net/project/showfiles.php?group_id=78018 
No local packages or download links found for pywin32>=214 
Best match: None 
Traceback (most recent call last): 
    File "C:\python27\scripts\easy_install-script.py", line 8, in 
    load_entry_point('setuptools==0.6c11', 'console_scripts', 'easy_install')() 
    File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 1712, in main 
    with_ei_usage(lambda: 
    File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 1700, in with_ei_usage 
    return f() 
    File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 1716, in 
    distclass=DistributionWithoutHelpCommands, **kw 
    File "C:\python27\lib\distutils\core.py", line 152, in setup 
    dist.run_commands() 
    File "C:\python27\lib\distutils\dist.py", line 953, in run_commands 
    self.run_command(cmd) 
    File "C:\python27\lib\distutils\dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 211, in run 
    self.easy_install(spec, not self.no_deps) 
    File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 446, in easy_install 
    return self.install_item(spec, dist.location, tmpdir, deps) 
    File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 481, in install_item 
    self.process_distribution(spec, dists[0], deps, "Using") 
    File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 519, in process_distribution 
    [requirement], self.local_index, self.easy_install 
    File "C:\python27\lib\site-packages\pkg_resources.py", line 563, in resolve 
    dist = best[req.key] = env.best_match(req, self, installer) 
    File "C:\python27\lib\site-packages\pkg_resources.py", line 799, in best_match 
    return self.obtain(req, installer) # try and download/install 
    File "C:\python27\lib\site-packages\pkg_resources.py", line 811, in obtain 
    return installer(requirement) 
    File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 434, in easy_install 
    self.local_index 
    File "C:\python27\lib\site-packages\setuptools\package_index.py", line 475, in fetch_distribution 
    return dist.clone(location=self.download(dist.location, tmpdir)) 
AttributeError: 'NoneType' object has no attribute 'clone' 
+9

@Rafe: To w ogóle mu nie pomaga. –

+0

@Sergio Tapia: Tylko sugestia. –

+0

Aby odpowiedzieć na jedno z powyższych pytań, instalator w języku Python nie zmodyfikuje zmiennej PATH, ponieważ: 1) nie może poprawnie zmodyfikować zmiennej PATH po odinstalowaniu, oraz 2) może mieć wiele wersji Pythona w tym samym systemie, co może spowodować nieoczekiwane zachowanie. Zobacz http://bugs.python.org/issue3561 – Brandon

Odpowiedz

8

Jednym z problemów jest to, że easy_install jest skonfigurowany do pobierania i instalowania plików .egg lub dystrybucji źródłowych (zawartych w plikach .tgz, .tar, .tar.gz, .tar.bz2 lub .zip). Nie wie, jak radzić sobie z rozszerzeniami PyWin32, ponieważ są one umieszczane pod nazwą within a separate installer executable. Będziesz musiał pobrać odpowiedni plik instalatora PyWin32 (dla Pythona 2.7) i uruchomić go samodzielnie. Po ponownym uruchomieniu easy_install (o ile zainstalowałeś go poprawnie, jak w instrukcjach Sergio), powinieneś zobaczyć, że twój pakiet winpexpect został poprawnie zainstalowany.

Ponieważ chodzi o system Windows i oprogramowanie typu open source, często może to być nieporządna kombinacja metod instalacji, aby zapewnić prawidłowe działanie. Jednak easy_install jest nadal lepszy niż ręczne edytowanie plików konfiguracyjnych.

+0

Dziękuję za pomoc. Ręcznie instalując instalator pywin32 exe, easy_install był w stanie zainstalować pakiet winpexpect bez błędów. Jednak po zaimportowaniu tego modułu w Pythonie, umiera z "ImportError: No module named resource". Czy jest to kolejny krok, który muszę przejść, aby moje środowisko Pythona działało poprawnie? Czy jest to po prostu błąd w module winpexpect? – Nick

+1

OK: znalazłem rozwiązanie: oprócz ręcznego instalowania pywin32, musiałem odinstalować moduły pexpect i winpexpect, a następnie ponownie zainstalować tylko moduł winpexpect. W tym momencie wszystko działa. – Nick

+0

Bądźmy uczciwi ...Niechlujstwo nie polega na tym, że okna są zamknięte-źródło, ponieważ więcej wysiłku wkładano w upewnienie się, że proces instalacji działa bezproblemowo na systemie Linux, a okna są po namyśle. Nie ma powodu, dla którego easy_install nie mógł pobrać pakietu i użyć MSBuild, aby skompilować go do lokalnego systemu, jeśli jest to wymagane. – Basic

1

Po pierwsze, mówi się, że już masz zainstalowany ten moduł. Jeśli trzeba ją uaktualnić, należy zrobić coś takiego:

easy_install -U packageName

Oczywiście easy_install nie działa bardzo dobrze, jeśli opakowanie ma kilka nagłówków C, które muszą być kompilowane i Ty nie masz zainstalowanej odpowiedniej wersji programu Visual Studio. Możesz spróbować użyć polecenia pip lub distribute zamiast easy_install i sprawdzić, czy działają lepiej.

+0

Nigdy nie zainstalowano w pełni. Rozbił się za każdym razem na zależnościach. Może mieć * częściowo * zainstalowany wcześniej, ale to wszystko. Ponieważ ten moduł jest dla systemu Windows, zakładam, że jest on prekompilowany. – Nick

23

Jeśli używasz Windows 7 w wersji 64-bitowej, a następnie roztwór znaleźć tutaj: http://pypi.python.org/pypi/setuptools

mianowicie, trzeba pobrać skrypt Pythona, uruchom go, a następnie easy_install będzie działać normalnie z polecenia.

P.S. Zgadzam się z oryginalnym plakatem stwierdzającym, że powinno to działać po wyjęciu z pudełka.

9

Zgadzam się również z OP, że wszystkie te rzeczy powinny być dostarczone z już ustawionym Pythonem. Sądzę, że będziemy musieli sobie z tym poradzić, dopóki ten dzień nie nadejdzie. Oto rozwiązanie, które faktycznie pracował dla mnie:

installing easy_install faster and easier

Mam nadzieję, że to pomaga czy ktoś z tym samym problemem!

+0

To naprawdę mi pomogło. Dzięki! – Rafid

+0

Nie ma za co! – Eenvincible

6

Skopiuj poniższy skrypt "ez_setup.py”z poniższej URL

https://bootstrap.pypa.io/ez_setup.py

i skopiuj go do swojej lokalizacji Python

C:\Python27>

uruchomić polecenie

C:\Python27? python ez_setup.py

To zainstaluje easy_install w katalogu Scripts

C:\Python27\Scripts

Run łatwo zainstalować z katalogu Scripts>

C:\Python27\Scripts> easy_install

0

Jeśli używasz Anaconda's dystrybucji Pythona,

można go zainstalować poprzez pip

pip install setuptools

a następnie wykonać ją jako moduł

python -m easy_install

Powiązane problemy