ΠΠΎΡ
ΠΎΠΆΠ΅, ΡΡΠΎ --target
Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ --editable
. ΠΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. ΠΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π»ΡΡΡΠ°Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ
c:\>pip install -t z:\1 -e git+https://github.com/kennethreitz/requests.git#egg=requests
ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ
Obtaining requests from git+https://github.com/kennethreitz/requests.git#egg=requests
Updating c:\python\virtualenv\test\src\requests clone
Running setup.py egg_info for package requests
Downloading/unpacking certifi>=0.0.7 (from requests)
Running setup.py egg_info for package certifi
Downloading/unpacking oauthlib>=0.1.0,<0.2.0 (from requests)
Running setup.py egg_info for package oauthlib
Downloading/unpacking chardet>=1.0.0 (from requests)
Running setup.py egg_info for package chardet
Downloading/unpacking rsa (from oauthlib>=0.1.0,<0.2.0->requests)
Running setup.py egg_info for package rsa
warning: no files found matching 'README'
Downloading/unpacking pyasn1>=0.0.13 (from rsa->oauthlib>=0.1.0,<0.2.0->requests)
Running setup.py egg_info for package pyasn1
Installing collected packages: requests, certifi, oauthlib, chardet, rsa, pyasn1
Running setup.py develop for requests
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: option --home not recognized
Complete output from command c:\python\virtualenv\test\Scripts\python.exe -c "import setuptools; __file__='c:\\python\\virtualenv\\test\\src\\requests\\setup.py'; exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" develop --no-deps --home=c:\users\piotr\appdata\local\temp\tmp3abskl:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help
error: option --home not recognized
----------------------------------------
Command c:\python\virtualenv\test\Scripts\python.exe -c "import setuptools; __file__='c:\\python\\virtualenv\\test\\src\\requests\\setup.py'; exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" develop --no-deps --home=c:\users\piotr\appdata\local\temp\tmp3abskl failed with error code 1 in c:\python\virtualenv\test\src\requests
Storing complete log in C:\Users\Piotr\AppData\Roaming\pip\pip.log
Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Ρ pip install -t dir -e git+git://github.com/shazow/urllib3.git@f088037#egg=urllib3
.
Ρ ΡΠΎΠΆΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ.
ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Ρ Π»ΡΠ±ΡΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ, Π΅ΡΠ»ΠΈ --target
ΠΈ --editable
ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ:
pip Π²ΡΠ·ΡΠ²Π°Π΅Ρ setup.py develop --home ...
, Π½ΠΎ --home
ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ setup.py install
.
ΠΡΠ°ΠΊ, Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ² Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ --src
Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ Π²ΠΌΠ΅ΡΡΠΎ --target
Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ, ΡΡΠΎ Ρ Ρ
ΠΎΡΡ.
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, --target
Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡ, ΡΡΠΎ ΠΈ --src
ΠΊΠΎΠ³Π΄Π° ΡΠΊΠ°Π·Π°Π½ --editable
ΠΈΠ»ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° --src
.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, --target Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡ, ΡΡΠΎ ΠΈ --src, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½ --editable
IMO ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ / ΠΎΠ±Π½ΠΎΠ²ΠΈΡ easy_install.pth Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ target
.
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ @jezdez, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ --editable):
git+ssh://[email protected]/some-user/some-repo.git#egg=Foo
Π― ΡΠ°ΠΌ Π²ΠΈΠΆΡ ΠΏΠΎΡ ΠΎΠΆΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
Cleaning up...
Exception:
Traceback (most recent call last):
File "/efs/dev/bti/pip/1.3.1-build001/install/exec/2.7/lib/python/pip-1.3.1-py2.7.egg/pip/basecommand.py", line 139, in main
status = self.run(options, args)
File "/efs/dev/bti/pip/1.3.1-build001/install/exec/2.7/lib/python/pip-1.3.1-py2.7.egg/pip/commands/install.py", line 291, in run
for item in os.listdir(lib_dir):
OSError: [Errno 2] No such file or directory: '/tmp/tmppjdGHI/lib/python'
ΡΡΡΠΎΠΊΠ° 290 Π² pip / commands / install.py:
lib_dir = home_lib(temp_target_dir)
ΠΠ· ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ ΠΌΠΎΠ³Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ, pip ΡΠΆΠ΅ ΠΎΡΠΈΡΡΠΈΠ» ΡΡΠΎΡ ΠΏΡΡΡ Π² ΡΡΡΠΎΠΊΠ΅ 1194 pip / req.py, Π³Π΄Π΅ ΠΎΠ½ ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ.
requirement.remove_temporary_source()
Π― ΠΌΠΎΠ³Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΡ ΠΎΡΠΈΡΡΠΊΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ, Π½ΠΎ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π΅Π΅ Π±Π»ΠΎΠΊΠΎΠΌ exists ΠΈΠ»ΠΈ try, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΎΠ³Π»Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ. ΠΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π²ΠΈΠ΄ΠΈΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
@tima Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ lib. Pip HEAD ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΠ» ΡΡΠΎ, Π½ΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π½Π° CentOS ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ lib64 Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° lib.
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ --target
(Π½ΠΎ Π½Π΅ --editable
).
ΠΠΎΡ ΠΌΠΎΡ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ -
Exception:
Traceback (most recent call last):
File "/Users/beaum/homebrew/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/basecommand.py", line 139, in main
status = self.run(options, args)
File "/Users/beaum/homebrew/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/commands/install.py", line 294, in run
for item in os.listdir(lib_dir):
OSError: [Errno 2] No such file or directory: '/var/folders/00/1hyxr000h01000cxqpysvccm0063vq/T/tmpc_E_Bl/lib/python'
+1,
Π‘ΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ PyYAML-3.10.tar.gz (241kB): ΡΠΊΠ°ΡΠ°Π½ΠΎ 241kB ΠΠ°ΠΏΡΡΠΊ setup.py egg_info Π΄Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° pyyaml ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Cython 'ext / _yaml.c' (Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ΅) Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΎΠ±ΡΠ°Π½Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²: krcore, sympy, pyparsing, pyyaml ΠΠ°ΠΏΡΡΠΊ setup.py develop Π΄Π»Ρ krcore ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] ΠΈΠ»ΠΈ: -c --help [cmd1 cmd2 ...] ΠΈΠ»ΠΈ: -c --help-commands ΠΈΠ»ΠΈ: -c cmd --help ΠΎΡΠΈΠ±ΠΊΠ°: ΠΎΠΏΡΠΈΡ --home Π½Π΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½Π° ΠΠΎΠ»Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ / usr / bin / python -c "import setuptools; __file __ = '/ tmp / krapp / src / krcore / setup.py'; exec (compile (open (__ file __). Read (). Replace ('\ r \ n ',' \ n '), __file__,' exec ')) "develop --no-deps --home = / tmp / tmpvKaRYp: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] ΠΈΠ»ΠΈ: -c --help [cmd1 cmd2 ...] ΠΈΠ»ΠΈ: -c --help-commands ΠΈΠ»ΠΈ: -c cmd --help ΠΎΡΠΈΠ±ΠΊΠ°: ΠΎΠΏΡΠΈΡ --home Π½Π΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½Π° ---------------------------------------- Π£Π±ΠΈΡΠ°ΡΡΡΡ... ΠΠΎΠΌΠ°Π½Π΄Π° / usr / bin / python -c "import setuptools; __file __ = '/ tmp / krapp / src / krcore / setup.py'; exec (compile (open (__ file __). Read (). Replace ('\ r \ n ',' \ n '), __file__,' exec ')) "develop --no-deps --home = / tmp / tmpvKaRYp Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ 1 Π² / tmp / krapp / src / krcore
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ --target Ρ -r (--requirements) Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅: ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ --home Π½Π΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½
: +1:
ΠΠΎΡΠ»Π΅ ΠΎΠ±Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ @jezdez :
ΠΎΡΠΈΠ±ΠΊΠ°: Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π»ΠΈΠ±ΠΎ home, Π»ΠΈΠ±ΠΎ prefix / exec-prefix - Π½ΠΎ Π½Π΅ ΠΎΠ±Π°
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ --editable ΠΈ --target Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅
Π― ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ...
Π― ΠΏΡΡΠ°ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ pip Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² python Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ (Π½Π΅ Π² virtualenv), ΠΈ ΠΌΠ½Π΅ Π½ΡΠΆΠ΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ
(ΡΠΎΡ, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ), ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ https://github.com/pypa/setuptools/issues/392
Π ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° pip ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠ°ΠΊ setup.py develop
(Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°), ΡΠ°ΠΊ ΠΈ setup.py install
(Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ), Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ (ΠΎΡΠ΅Π½Ρ ΡΡΠΎΠ΄Π»ΠΈΠ²ΡΠΉ) ΠΎΠ±Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΠΌΠΎΠ³Ρ Π΄ΡΠΌΠ°ΡΡ, - ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ 2 ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
--no-deps
ΠΡΠ»ΠΎ Π±Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ΅, Π΅ΡΠ»ΠΈ Π±Ρ Π½Π΅ Π±ΡΠ»ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ pip, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ --editable
ΡΠΎΠ³ΠΎ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π»ΠΈ
ΠΡΠ°ΠΊ, Ρ Π΄ΡΠΌΠ°Ρ, Π΅ΡΡΡ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ:
--home
ie. ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ https://github.com/pypa/setuptools/issues/392. ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ°?--target
ΡΠ°Π·Π½ΠΎΠΌΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π»ΠΈ ΠΎΠ½ setup.py develop
ΠΈΠ»ΠΈ setup.py install
. ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠ΅?ΠΈΠΌΠ΅Ρ pip abstract setuptools, ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
--target
ΡΠ°Π·Π½ΠΎΠΌΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π»ΠΈ ΠΎΠ½setup.py develop
ΠΈΠ»ΠΈsetup.py install
. ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠ΅?
Π‘Π°ΠΌΠ°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΡΡΠ΄Π½ΠΎΡΡΡ Ρ ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠ΅ΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ pip ΠΏΡΡΠ°Π΅ΡΡΡ Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ (setuptools), ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΡΡΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ setuptools ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΎΡΠΈΠ² ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ.
Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΌΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎ, ΡΡΠΎ Ρ Ρ
ΠΎΡΠ΅Π», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ --prefix
ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
--install-option
, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΏΠ΅ΡΠ΅Π΄Π°Ρ Π»ΠΈ Ρ --editable
ΠΈΠ»ΠΈ Π½Π΅Ρ. .
ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΊΠ°ΠΊ-ΡΠΎ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ (debian) ΠΌΠ°ΠΊΠ΅Ρ Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ pip ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (site-packages), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅Ρ ΠΎΠΏΡΠΈΠΈ pip Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΌΠ°ΠΊΠ΅ΡΠ° ...
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΡΠΎΠΈΡ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ?
@xavfernandez
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½Π° ΠΌΠ΅ΡΠΊΠ° --target option
.
ΠΌΠΎΠΆΠ΅Ρ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ, ΠΊΠ°ΠΊ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ -e ΠΈ -t? ΠΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ distutils, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ --home?
Π»ΡΠ±ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ?
Π― Π²ΡΠ΅ Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ --editable
Ρ --prefix
(Π²ΠΌΠ΅ΡΡΠΎ --target
), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΡ ΡΠ°Π±ΠΎΡΡ Π·Π° ΠΌΠ΅Π½Ρ. ΠΠΎ Ρ Π·Π°ΡΡΡΡΠ» Π½Π° pip <9.0.0 ΠΈΠ·-Π·Π° ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ --prefix
ΠΈ --target
. ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π² https://github.com/pypa/pip/issues/4243
Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ --prefix Π²ΠΌΠ΅ΡΡΠΎ --target, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PYTHONPATH
(ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠ°ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ), ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ pip -t . --prefix myprefix
. ΠΡΡΡ Π»ΠΈ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ?
ΠΠ°ΠΊΡΡΡΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΠΊΡΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² ΠΎΠ΄Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: # 4390.
Π― Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ», ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Google Appengine, ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π² ΠΊΠΎΡΠ½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΡΡΠ½ΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ.
ΠΡΠΎΡ ΠΏΠΎΡΠΎΠΊ Π±ΡΠ» Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ Π·Π°ΠΊΡΡΡΠΈΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ», ΡΡΠΎ ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Google Appengine, ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π² ΠΊΠΎΡΠ½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΡΡΠ½ΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ.