ูƒูŠู ุชุนู…ู„ ู…ูƒุชุจุงุช ุงู„ุจูŠุฆุฉ ุงู„ุงูุชุฑุงุถูŠุฉ

ู‡ู„ ููƒุฑุช ูŠูˆู…ู‹ุง ููŠ ูƒูŠููŠุฉ ุนู…ู„ ู…ูƒุชุจุงุช ุงู„ุจูŠุฆุฉ ุงู„ุงูุชุฑุงุถูŠุฉ ููŠ PythonุŸ ููŠ ู‡ุฐู‡ ุงู„ู…ู‚ุงู„ุฉ ุŒ ุฃู‚ุชุฑุญ ุงู„ุชุนุฑู ุนู„ู‰ ุงู„ู…ูู‡ูˆู… ุงู„ุฑุฆูŠุณูŠ ุงู„ุฐูŠ ุชุณุชุฎุฏู…ู‡ ุฌู…ูŠุน ุงู„ู…ูƒุชุจุงุช ู„ู„ุจูŠุฆุงุช ุŒ ู…ุซู„ virtualenv ูˆ virtualenvwrapper ูˆ conda ูˆ pipenv.

ููŠ ุงู„ุจุฏุงูŠุฉ ุŒ ููŠ Python ู„ู… ูŠูƒู† ู‡ู†ุงูƒ ู‚ุฏุฑุฉ ู…ุฏู…ุฌุฉ ุนู„ู‰ ุฅู†ุดุงุก ุจูŠุฆุงุช ุŒ ูˆุชู… ุชู†ููŠุฐ ู‡ุฐู‡ ุงู„ู…ูŠุฒุฉ ูƒู‚ุฑุตู†ุฉ. ูƒู…ุง ุงุชุถุญ ุŒ ูุฅู† ุฌู…ูŠุน ุงู„ู…ูƒุชุจุงุช ุชุนุชู…ุฏ ุนู„ู‰ ู…ูŠุฒุฉ ุจุณูŠุทุฉ ู„ู„ุบุงูŠุฉ ู„ู…ุชุฑุฌู… ุงู„ุซุนุจุงู†.

ุนู†ุฏู…ุง ูŠุจุฏุฃ Python ุงู„ู…ุชุฑุฌู… ุŒ ูุฅู†ู‡ ูŠุจุฏุฃ ููŠ ุงู„ุจุญุซ ุนู† ุงู„ุฏู„ูŠู„ ุจุงุณุชุฎุฏุงู… ุงู„ูˆุญุฏุงุช ุงู„ู†ู…ุทูŠุฉ (ุญุฒู… ุงู„ู…ูˆู‚ุน). ูŠุจุฏุฃ ุงู„ุจุญุซ ุจุงู„ุฏู„ูŠู„ ุงู„ุฃุตู„ ููŠู…ุง ูŠุชุนู„ู‚ ุจุงู„ู…ูˆู‚ุน ุงู„ูุนู„ูŠ ู„ู„ู…ุชุฑุฌู… ุงู„ู‚ุงุจู„ ู„ู„ุชู†ููŠุฐ (python.exe). ุฅุฐุง ู„ู… ูŠุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ ู…ุฌู„ุฏ ุงู„ูˆุญุฏุฉ ุงู„ู†ู…ุทูŠุฉ ุŒ ูุฅู† Python ูŠุฑุชูุน ู…ุณุชูˆู‰ ูˆุงุญุฏ ูˆูŠู‚ูˆู… ุจุฐู„ูƒ ุญุชู‰ ูŠุชู… ุงู„ูˆุตูˆู„ ุฅู„ู‰ ุงู„ุฏู„ูŠู„ ุงู„ุฌุฐุฑ. ู„ูู‡ู… ุฃู† ู‡ุฐุง ุฏู„ูŠู„ ูŠุญุชูˆูŠ ุนู„ู‰ ูˆุญุฏุงุช ุŒ ุชุจุญุซ Python ุนู† ูˆุญุฏุฉ os ุŒ ูˆุงู„ุชูŠ ูŠุฌุจ ุฃู† ุชูƒูˆู† ููŠ ู…ู„ู os.py ูˆู…ุทู„ูˆุจุฉ ู„ูƒูŠ ุชุนู…ู„ python.

ุฏุนู†ุง ู†ุชุฎูŠู„ ุฃู† ู…ุชุฑุฌู…ู†ุง ู…ูˆุฌูˆุฏ ููŠ /usr/dev/lang/bin/python . ุซู… ุณุชุจุฏูˆ ู…ุณุงุฑุงุช ุงู„ุจุญุซ ุนู„ู‰ ุงู„ู†ุญูˆ ุงู„ุชุงู„ูŠ:

 /usr/dev/lang/lib/python3.7/os.py /usr/dev/lib/python3.7/os.py /usr/lib/python3.7/os.py /lib/python3.7/os.py 

ูƒู…ุง ุชุฑู‰ ุŒ ุชุถูŠู Python ุจุงุฏุฆุฉ ุฎุงุตุฉ ( lib/python$VERSION/os.py ) ุฅู„ู‰ ู…ุณุงุฑู†ุง. ุจู…ุฌุฑุฏ ุฃู† ูŠุฌุฏ ุงู„ู…ุชุฑุฌู… ุงู„ู…ุทุงุจู‚ุฉ ุงู„ุฃูˆู„ู‰ (ูˆุฌูˆุฏ ู…ู„ู os.py) ุŒ ูุฅู†ู‡ ูŠุบูŠุฑ sys.prefix ูˆ sys.exec_prefix ุฅู„ู‰ ู‡ุฐุง ุงู„ู…ุณุงุฑ (ู…ุน ุฅุฒุงู„ุฉ ุงู„ุจุงุฏุฆุฉ). ุฅุฐุง ู„ู… ูŠุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ ุชุทุงุจู‚ุงุช ู„ุณุจุจ ู…ุง ุŒ ูุณูŠุชู… ุงุณุชุฎุฏุงู… ุงู„ู…ุณุงุฑ ุงู„ู‚ูŠุงุณูŠ ุŒ ูˆุงู„ุฐูŠ ูŠุชู… ุชุฌู…ูŠุนู‡ ููŠ ุงู„ู…ุชุฑุฌู….

ู„ู†ุฑู‰ ุงู„ุขู† ูƒูŠู ุชู‚ูˆู… ุจุฐู„ูƒ ุฅุญุฏู‰ ุฃู‚ุฏู… ูˆุฃุดู‡ุฑ ุงู„ู…ูƒุชุจุงุช ุŒ virtualenv.

 user@arb:/usr/home/test# virtualenv ENV Running virtualenv with interpreter /usr/bin/python3 New python executable in /usr/home/test/ENV/bin/python3 Also creating executable in /usr/home/test/ENV/bin/python Installing setuptools, pkg_resources, pip, wheel...done. 

ุจุนุฏ ุงู„ุชู†ููŠุฐ ุŒ ูŠู‚ูˆู… ุจุฅู†ุดุงุก ุฃุฏู„ุฉ ุฅุถุงููŠุฉ:

 user@arb:/usr/home/test/ENV# tree -L 3 . โ”œโ”€โ”€ bin โ”‚ โ”œโ”€โ”€ activate โ”‚ โ”œโ”€โ”€ activate.csh โ”‚ โ”œโ”€โ”€ activate.fish โ”‚ โ”œโ”€โ”€ activate_this.py โ”‚ โ”œโ”€โ”€ easy_install โ”‚ โ”œโ”€โ”€ easy_install-3.7 โ”‚ โ”œโ”€โ”€ pip โ”‚ โ”œโ”€โ”€ pip3 โ”‚ โ”œโ”€โ”€ pip3.7 โ”‚ โ”œโ”€โ”€ python โ”‚ โ”œโ”€โ”€ python-config โ”‚ โ”œโ”€โ”€ python3 -> python โ”‚ โ”œโ”€โ”€ python3.7 -> python โ”‚ โ””โ”€โ”€ wheel โ”œโ”€โ”€ include โ”‚ โ””โ”€โ”€ python3.7m -> /usr/include/python3.7m โ”œโ”€โ”€ lib โ”‚ โ””โ”€โ”€ python3.7 โ”‚ โ”œโ”€โ”€ __future__.py -> /usr/lib/python3.7/__future__.py โ”‚ โ”œโ”€โ”€ __pycache__ โ”‚ โ”œโ”€โ”€ _bootlocale.py -> /usr/lib/python3.7/_bootlocale.py โ”‚ โ”œโ”€โ”€ _collections_abc.py -> /usr/lib/python3.7/_collections_abc.py โ”‚ โ”œโ”€โ”€ _dummy_thread.py -> /usr/lib/python3.7/_dummy_thread.py โ”‚ โ”œโ”€โ”€ _weakrefset.py -> /usr/lib/python3.7/_weakrefset.py โ”‚ โ”œโ”€โ”€ abc.py -> /usr/lib/python3.7/abc.py โ”‚ โ”œโ”€โ”€ base64.py -> /usr/lib/python3.7/base64.py โ”‚ โ”œโ”€โ”€ bisect.py -> /usr/lib/python3.7/bisect.py โ”‚ โ”œโ”€โ”€ codecs.py -> /usr/lib/python3.7/codecs.py โ”‚ โ”œโ”€โ”€ collections -> /usr/lib/python3.7/collections โ”‚ โ”œโ”€โ”€ config-3.7m-darwin -> /usr/lib/python3.7/config-3.7m-darwin โ”‚ โ”œโ”€โ”€ copy.py -> /usr/lib/python3.7/copy.py โ”‚ โ”œโ”€โ”€ copyreg.py -> /usr/lib/python3.7/copyreg.py โ”‚ โ”œโ”€โ”€ distutils โ”‚ โ”œโ”€โ”€ encodings -> /usr/lib/python3.7/encodings โ”‚ โ”œโ”€โ”€ enum.py -> /usr/lib/python3.7/enum.py โ”‚ โ”œโ”€โ”€ fnmatch.py -> /usr/lib/python3.7/fnmatch.py โ”‚ โ”œโ”€โ”€ functools.py -> /usr/lib/python3.7/functools.py โ”‚ โ”œโ”€โ”€ genericpath.py -> /usr/lib/python3.7/genericpath.py โ”‚ โ”œโ”€โ”€ hashlib.py -> /usr/lib/python3.7/hashlib.py โ”‚ โ”œโ”€โ”€ heapq.py -> /usr/lib/python3.7/heapq.py โ”‚ โ”œโ”€โ”€ hmac.py -> /usr/lib/python3.7/hmac.py โ”‚ โ”œโ”€โ”€ imp.py -> /usr/lib/python3.7/imp.py โ”‚ โ”œโ”€โ”€ importlib -> /usr/lib/python3.7/importlib โ”‚ โ”œโ”€โ”€ io.py -> /usr/lib/python3.7/io.py โ”‚ โ”œโ”€โ”€ keyword.py -> /usr/lib/python3.7/keyword.py โ”‚ โ”œโ”€โ”€ lib-dynload -> /usr/lib/python3.7/lib-dynload โ”‚ โ”œโ”€โ”€ linecache.py -> /usr/lib/python3.7/linecache.py โ”‚ โ”œโ”€โ”€ locale.py -> /usr/lib/python3.7/locale.py โ”‚ โ”œโ”€โ”€ no-global-site-packages.txt โ”‚ โ”œโ”€โ”€ ntpath.py -> /usr/lib/python3.7/ntpath.py โ”‚ โ”œโ”€โ”€ operator.py -> /usr/lib/python3.7/operator.py โ”‚ โ”œโ”€โ”€ orig-prefix.txt โ”‚ โ”œโ”€โ”€ os.py -> /usr/lib/python3.7/os.py โ”‚ โ”œโ”€โ”€ posixpath.py -> /usr/lib/python3.7/posixpath.py โ”‚ โ”œโ”€โ”€ random.py -> /usr/lib/python3.7/random.py โ”‚ โ”œโ”€โ”€ re.py -> /usr/lib/python3.7/re.py โ”‚ โ”œโ”€โ”€ readline.so -> /usr/lib/python3.7/lib-dynload/readline.cpython-37m-darwin.so โ”‚ โ”œโ”€โ”€ reprlib.py -> /usr/lib/python3.7/reprlib.py โ”‚ โ”œโ”€โ”€ rlcompleter.py -> /usr/lib/python3.7/rlcompleter.py โ”‚ โ”œโ”€โ”€ shutil.py -> /usr/lib/python3.7/shutil.py โ”‚ โ”œโ”€โ”€ site-packages โ”‚ โ”œโ”€โ”€ site.py โ”‚ โ”œโ”€โ”€ sre_compile.py -> /usr/lib/python3.7/sre_compile.py โ”‚ โ”œโ”€โ”€ sre_constants.py -> /usr/lib/python3.7/sre_constants.py โ”‚ โ”œโ”€โ”€ sre_parse.py -> /usr/lib/python3.7/sre_parse.py โ”‚ โ”œโ”€โ”€ stat.py -> /usr/lib/python3.7/stat.py โ”‚ โ”œโ”€โ”€ struct.py -> /usr/lib/python3.7/struct.py โ”‚ โ”œโ”€โ”€ tarfile.py -> /usr/lib/python3.7/tarfile.py โ”‚ โ”œโ”€โ”€ tempfile.py -> /usr/lib/python3.7/tempfile.py โ”‚ โ”œโ”€โ”€ token.py -> /usr/lib/python3.7/token.py โ”‚ โ”œโ”€โ”€ tokenize.py -> /usr/lib/python3.7/tokenize.py โ”‚ โ”œโ”€โ”€ types.py -> /usr/lib/python3.7/types.py โ”‚ โ”œโ”€โ”€ warnings.py -> /usr/lib/python3.7/warnings.py โ”‚ โ””โ”€โ”€ weakref.py -> /usr/lib/python3.7/weakref.py โ””โ”€โ”€ pip-selfcheck.json 

ูƒู…ุง ุชุฑู‰ ุŒ ุชู… ุฅู†ุดุงุก ุงู„ุจูŠุฆุฉ ุงู„ุงูุชุฑุงุถูŠุฉ ุนู† ุทุฑูŠู‚ ู†ุณุฎ ุซู†ุงุฆูŠ Python ุงู„ุซู†ุงุฆูŠ ุฅู„ู‰ ู…ุฌู„ุฏ ู…ุญู„ูŠ (ENV / bin / python). ูŠู…ูƒู†ู†ุง ุฃูŠุถู‹ุง ู…ู„ุงุญุธุฉ ุฃู† ุงู„ู…ุฌู„ุฏ ุงู„ุฃุตู„ูŠ ูŠุญุชูˆูŠ ุนู„ู‰ ุฑูˆุงุจุท ุฑู…ุฒูŠุฉ ู„ู…ู„ูุงุช ู…ูƒุชุจุฉ python ุงู„ู‚ูŠุงุณูŠุฉ. ู„ุง ูŠู…ูƒู†ู†ุง ุฅู†ุดุงุก ุงุฑุชุจุงุท ุฑู…ุฒูŠ ู„ู„ู…ู„ู ุงู„ู‚ุงุจู„ ู„ู„ุชู†ููŠุฐ ุŒ ู…ุซู„ ุณูŠุธู„ ุงู„ู…ุชุฑุฌู… ูŠุนูŠุฏ ุชุณู…ูŠุชู‡ ุฅู„ู‰ ุงู„ู…ุณุงุฑ ุงู„ูุนู„ูŠ.

ุงู„ุขู† ุฏุนู†ุง ู†ู†ุดุท ุจูŠุฆุชู†ุง:

 user@arb:/usr/home/test# source ENV/bin/activate 

ูŠุบูŠุฑ ู‡ุฐุง ุงู„ุฃู…ุฑ ู…ุชุบูŠุฑ ุงู„ุจูŠุฆุฉ PATH $ ุจุญูŠุซ ูŠุดูŠุฑ ุงู„ุฃู…ุฑ python ุฅู„ู‰ ุงู„ุฅุตุฏุงุฑ ุงู„ู…ุญู„ูŠ ู…ู† python. ูŠุชู… ุชุญู‚ูŠู‚ ุฐู„ูƒ ุนู† ุทุฑูŠู‚ ุงุณุชุจุฏุงู„ ุงู„ู…ุณุงุฑ ุงู„ู…ุญู„ูŠ ู„ู…ุฌู„ุฏ ุงู„ุญุงูˆูŠุฉ ููŠ ุจุฏุงูŠุฉ ุงู„ุณุทุฑ $ PATH ุจุญูŠุซ ูŠูƒูˆู† ู„ู„ู…ุณุงุฑ ุงู„ู…ุญู„ูŠ ุงู„ุฃุณุจู‚ูŠุฉ ุนู„ู‰ ุฌู…ูŠุน ุงู„ู…ุณุงุฑุงุช ุนู„ู‰ ุงู„ูŠู…ูŠู†.

 export "/usr/home/test/ENV/bin:$PATH" echo $PATH 

ุฅุฐุง ู‚ู…ุช ุจุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู…ู† ู‡ุฐู‡ ุงู„ุจูŠุฆุฉ ุŒ ูุณูŠุชู… ุชู†ููŠุฐู‡ ุจุงุณุชุฎุฏุงู… ุซู†ุงุฆูŠ ููŠ /usr/home/test/ENV/bin/python . ุณูŠุณุชุฎุฏู… ุงู„ู…ุชุฑุฌู… ู‡ุฐุง ุงู„ู…ุณุงุฑ ูƒู†ู‚ุทุฉ ุจุฏุงูŠุฉ ู„ู„ุนุซูˆุฑ ุนู„ู‰ ุงู„ูˆุญุฏุงุช ุงู„ู†ู…ุทูŠุฉ. ููŠ ุญุงู„ุชู†ุง ุŒ ุณูŠุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ ูˆุญุฏุงุช ุงู„ู…ูƒุชุจุฉ ุงู„ู‚ูŠุงุณูŠุฉ ุนู„ู‰ ุงู„ู…ุณุงุฑ /usr/home/test/ENV/lib/python3.7/ .

ู‡ุฐุง ู‡ูˆ ุงู„ุงุฎุชุฑุงู‚ ุงู„ุฑุฆูŠุณูŠ ุŒ ูˆุงู„ุฐูŠ ุจูุถู„ู‡ ุชุนู…ู„ ุฌู…ูŠุน ุงู„ู…ูƒุชุจุงุช ู„ู„ุนู…ู„ ู…ุน ุงู„ุจูŠุฆุงุช ุงู„ุงูุชุฑุงุถูŠุฉ.

ุงู„ุชุญุณูŠู†ุงุช ููŠ Python 3


ุจุฏุกู‹ุง ู…ู† ุงู„ุฅุตุฏุงุฑ Python 3.3 ุŒ ุธู‡ุฑ ู…ุนูŠุงุฑ ุฌุฏูŠุฏ ุŒ ูŠูุดุงุฑ ุฅู„ูŠู‡ ุจุงุณู… PEP 405 ุŒ ูˆุงู„ุฐูŠ ูŠู‚ุฏู… ุขู„ูŠุฉ ุฌุฏูŠุฏุฉ ู„ู„ุจูŠุฆุงุช ุฎููŠูุฉ ุงู„ูˆุฒู†.

ูŠุถูŠู ู‡ุฐุง PEP ุฎุทูˆุฉ ุฅุถุงููŠุฉ ุฅู„ู‰ ุนู…ู„ูŠุฉ ุงู„ุจุญุซ. ุฅุฐุง ู‚ู…ุช ุจุฅู†ุดุงุก pyenv.cfg ุชูƒูˆูŠู† pyenv.cfg ุŒ ูุจุฏู„ุงู‹ ู…ู† ู†ุณุฎ Python binary ูˆุฌู…ูŠุน pyenv.cfg ุŒ ูŠู…ูƒู†ูƒ ุจุจุณุงุทุฉ ุชุญุฏูŠุฏ ู…ูˆู‚ุนู‡ุง ููŠ ู‡ุฐุง ุงู„ุชูƒูˆูŠู†.

ูŠุชู… ุงุณุชุฎุฏุงู… ู‡ุฐู‡ ุงู„ู…ูŠุฒุฉ ุจู†ุดุงุท ู…ู† ู‚ุจู„ ูˆุญุฏุฉ venv ุงู„ู‚ูŠุงุณูŠุฉ ุŒ ูˆุงู„ุชูŠ ุธู‡ุฑุช ููŠ Python 3.

 user@arb:/usr/home/test2# python3 -m venv ENV user@arb:/usr/home/test2# tree -L 3 . โ””โ”€โ”€ ENV โ”œโ”€โ”€ bin โ”‚ โ”œโ”€โ”€ activate โ”‚ โ”œโ”€โ”€ activate.csh โ”‚ โ”œโ”€โ”€ activate.fish โ”‚ โ”œโ”€โ”€ easy_install โ”‚ โ”œโ”€โ”€ easy_install-3.7 โ”‚ โ”œโ”€โ”€ pip โ”‚ โ”œโ”€โ”€ pip3 โ”‚ โ”œโ”€โ”€ pip3.5 โ”‚ โ”œโ”€โ”€ python -> python3 โ”‚ โ””โ”€โ”€ python3 -> /usr/bin/python3 โ”œโ”€โ”€ include โ”œโ”€โ”€ lib โ”‚ โ””โ”€โ”€ python3.7 โ”œโ”€โ”€ lib64 -> lib โ”œโ”€โ”€ pyvenv.cfg โ””โ”€โ”€ share โ””โ”€โ”€ python-wheels 

 user@arb:/usr/home/test2# cat ENV/pyvenv.cfg home = /usr/bin include-system-site-packages = false version = 3.7.0 user@arb:/usr/home/test2# readlink ENV/bin/python3 /usr/bin/python3 

ุจูุถู„ ู‡ุฐุง ุงู„ุชูƒูˆูŠู† ุŒ ุจุฏู„ุงู‹ ู…ู† ู†ุณุฎ ุงู„ู…ู„ู ุงู„ุซู†ุงุฆูŠ ุŒ ูŠู‚ูˆู… venv ุจุจุณุงุทุฉ ุจุฅู†ุดุงุก ุงุฑุชุจุงุท ุฅู„ูŠู‡. ุฅุฐุง ุชู… ุชุบูŠูŠุฑ ุงู„ู…ุนู„ู…ุงุช include-system-site-packages ุฅู„ู‰ true ุŒ ูุณูŠุชู… ุงู„ูˆุตูˆู„ ุชู„ู‚ุงุฆูŠู‹ุง ุฅู„ู‰ ุฌู…ูŠุน ูˆุญุฏุงุช ุงู„ู…ูƒุชุจุฉ ุงู„ู‚ูŠุงุณูŠุฉ ู…ู† ุงู„ุจูŠุฆุฉ ุงู„ุงูุชุฑุงุถูŠุฉ.

ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ู‡ุฐู‡ ุงู„ุชุบูŠูŠุฑุงุช ุŒ ุชุณุชุฎุฏู… ู…ุนุธู… ู…ูƒุชุจุงุช ุงู„ุฌู‡ุงุช ุงู„ุฎุงุฑุฌูŠุฉ ู„ู„ุนู…ู„ ู…ุน ุงู„ุจูŠุฆุงุช ุงู„ุงูุชุฑุงุถูŠุฉ ุงู„ู†ู‡ุฌ ุงู„ู‚ุฏูŠู….

ู…ู„ุงุญุธุฉ: ุฃู†ุง ู…ุคู„ู ู‡ุฐุง ุงู„ู…ู‚ุงู„ ุŒ ูŠู…ูƒู†ูƒ ุทุฑุญ ุฃูŠ ุฃุณุฆู„ุฉ.

Source: https://habr.com/ru/post/ar418579/


All Articles