Dwie opcje w setup.py developi installmylą mnie. Według tej strony za pomocądevelop tworzy specjalny link do katalogu stron-pakietów.
Ludzie zasugerowali, żebym użył go python setup.py installdo nowej instalacji i python setup.py developpo wprowadzeniu jakichkolwiek zmian w pliku instalacyjnym.
Czy ktoś może rzucić nieco światła na użycie tych poleceń?
python setup.py install służy do instalowania pakietów (zwykle stron trzecich), których nie zamierzasz samodzielnie opracowywać / modyfikować / debugować.
Jeśli chodzi o twoje własne rzeczy, chcesz najpierw zainstalować pakiet, a następnie móc często edytować kod bez konieczności ponownej instalacji pakietu za każdym razem - i właśnie to python setup.py developrobi: instaluje pakiet (zwykle tylko folder źródłowy) w sposób umożliwiający wygodną edycję kodu po jego zainstalowaniu w (wirtualnym) środowisku i natychmiastowe wprowadzenie zmian.
Należy pamiętać, że zaleca się używanie pip install .(instalowanie) i pip install -e .(instalowanie przez programistę) do instalowania pakietów, ponieważ setup.pybezpośrednie wywoływanie spowoduje niewłaściwe działanie w przypadku wielu zależności, takich jak pobieranie wersji wstępnych i niekompatybilne wersje pakietów, lub utrudnianie odinstalowywania pakietu pip.
Erik ma rację. Warto również wiedzieć, że setup.py developjest to --uninstallopcja dostępna po zakończeniu hakowania.
philadams,
5
Ostatnia myśl tutaj jest taka, że inną opcją setup.py developprzy hakowaniu pakietu Pythona jest użycie „prostej (ale wyraźnej) modyfikacji ścieżki, aby poprawnie rozwiązać pakiet” ponownie Kenneth Reitz
philadams
4
Wystąpiły problemy przy python setup.py developpróbie ustawienia Ceilometru na potrzeby rozwoju lokalnego. Skończyło się na użyciu pip install -e PATH(w ramach virtualenv), aby uniknąć problemów, które pojawiły się za pośrednictwemeasy_install .
Joe D'Andrea,
1
nie jestem pewien, czy to ma znaczenie, ale jeśli używam Pythona 3 itp., czy trzeba działać python setup.py developinaczej?
Charlie Parker,
1
Działa z python3, ale nie zapomnij usunąć jakiejkolwiek bieżącej instalacji pip, ponieważ mogą one się ze sobą kolidować (w tej chwili mi się przydarzyło).
Léo Germond
124
Z dokumentacji . Pakiet developnie zainstaluje pakietu, ale utworzy plik .egg-linkz katalogu wdrażania z powrotem do katalogu kodu źródłowego projektu.
To jest jak instalacja, ale zamiast kopiowania do site-packagesniego dodaje łącze symboliczne ( .egg-linkdziała jak wieloplatformowe łącze symboliczne).
W ten sposób możesz edytować kod źródłowy i zobaczyć zmiany bezpośrednio, bez konieczności ponownej instalacji za każdym razem, gdy wprowadzisz niewielką zmianę. Jest to przydatne, gdy jesteś programistą tego projektu, stąd nazwa develop. Jeśli instalujesz pakiet innej osoby, powinieneś użyćinstall
IIUC nie powinieneś nigdy setup.py developw swoim systemie, ma to sens tylko w virtualenv.
dividebyzero
2
@dividebyzero Czy masz na myśli, że należy zawsze używać python setup.py develop --user, jeśli dobrze rozumiem? Poza tym, czy możesz mi powiedzieć, gdzie pakiet jest instalowany przy użyciu python setup.py develop --user? Dzięki!
ROBOT AI
2
Myślę, że --userzainstaluje się w katalogu na twoim koncie domowym i nie wpłynie na innych użytkowników w twoim systemie. developUczyni linki do katalogu źródłowego projektu zamiast faktycznie kopiując wszystko. develop --userpowinno być OK, a także developw virtualenv. developDziwny jest tylko faktyczny system, ponieważ inni użytkownicy używają czegoś, co wskazuje na projekt w osobistej kopii kodu źródłowego projektu.
dividebyzero,
4
Jednak wiele (większość?) Osób nie działa w systemach z wieloma użytkownikami
patstew,
1
@boatcoder, Mac i Linux (i Windows) mogą być systemami obsługującymi wiele użytkowników , ale najprawdopodobniej programista jest jedynym (prawdziwym) kontem użytkownika na jego pulpicie i myślę, że to właśnie oznaczało pastew.
setup.py develop
jest to--uninstall
opcja dostępna po zakończeniu hakowania.setup.py develop
przy hakowaniu pakietu Pythona jest użycie „prostej (ale wyraźnej) modyfikacji ścieżki, aby poprawnie rozwiązać pakiet” ponownie Kenneth Reitzpython setup.py develop
próbie ustawienia Ceilometru na potrzeby rozwoju lokalnego. Skończyło się na użyciupip install -e PATH
(w ramach virtualenv), aby uniknąć problemów, które pojawiły się za pośrednictwemeasy_install
.python setup.py develop
inaczej?Z dokumentacji . Pakiet
develop
nie zainstaluje pakietu, ale utworzy plik.egg-link
z katalogu wdrażania z powrotem do katalogu kodu źródłowego projektu.To jest jak instalacja, ale zamiast kopiowania do
site-packages
niego dodaje łącze symboliczne (.egg-link
działa jak wieloplatformowe łącze symboliczne).W ten sposób możesz edytować kod źródłowy i zobaczyć zmiany bezpośrednio, bez konieczności ponownej instalacji za każdym razem, gdy wprowadzisz niewielką zmianę. Jest to przydatne, gdy jesteś programistą tego projektu, stąd nazwa
develop
. Jeśli instalujesz pakiet innej osoby, powinieneś użyćinstall
źródło
Inną rzeczą, która może się przydać podczas korzystania z tej
develop
metody, jest--user
opcja instalacji bez sudo. Dawny:zamiast
źródło
setup.py develop
w swoim systemie, ma to sens tylko w virtualenv.python setup.py develop --user
, jeśli dobrze rozumiem? Poza tym, czy możesz mi powiedzieć, gdzie pakiet jest instalowany przy użyciupython setup.py develop --user
? Dzięki!--user
zainstaluje się w katalogu na twoim koncie domowym i nie wpłynie na innych użytkowników w twoim systemie.develop
Uczyni linki do katalogu źródłowego projektu zamiast faktycznie kopiując wszystko.develop --user
powinno być OK, a takżedevelop
w virtualenv.develop
Dziwny jest tylko faktyczny system, ponieważ inni użytkownicy używają czegoś, co wskazuje na projekt w osobistej kopii kodu źródłowego projektu.