Мы уже знаем, что на текущую сессию интерпретатора изменение PYTHONPATH никак не повлияет. Но если вы запустите дочерний процесс, то он унаследует окружение текущего процесса, а значит и изменения в любых переменных будут на него влиять.
Вот небольшой пример:
Объявляем переменную
user@host:~$ export PYTHONPATH=/path1
Запускаем интерпретатор
user@host:~$ python3
Проверим что в sys.path
>>> import sys
>>> print(sys.path)
['', '/path1', '/usr/lib/...', ...]
Добавляем что-то в переменную
>>> import os
>>> os.emviron['PYTHONPATH'] = '/path1:/path2'
>>> print(sys.path)
['', '/path1', '/usr/lib/...', ...]
Изменений нет. Но давайте запустим дочерний процесс и посмотрим там
>>> os.system('python3')
# теперь мы находимся в другом процессе
>>> import sys
>>> print(sys.path)
['', '/path1', '/path2', '/usr/lib/...', ...]
Тоже самое будет и с subprocess, так как по умолчанию текущее окружение тоже наследуется.
>>> import subprocess
>>> subprocess.call(['python3', '-c', 'import sys;print(sys.path)'])
['', '/path1', '/path2', '/usr/lib/...', ...]
______________________
Лучшей практикой является передача энвайронмента явно через аргумент env!
import subprocess
subprocess.call(cmd, env={'PYTHONPATH': '...'})
Это поможет точно понимать какое окружение будет у запускаемого процесса и при этом не изменять окружение текущего процесса.
#basic
Croc
Easily and securely send things from one computer to another
Features
- allows any two computers to transfer data (using a relay)
- provides end-to-end encryption (using PAKE)
- enables easy cross-platform transfers (Windows, Linux, Mac, Android)
- allows multiple file transfers
- local server or port-forwarding not needed
- ipv6-first with ipv4 fallback
https://github.com/schollz/croc
https://f-droid.org/en/packages/com.github.howeyc.crocgui/
📡@NoGoolag📡@Libreware
#croc#transfer#send#share
Alt-sendme — send files and folders to anywhere in the world without storing them in the cloud — any size, any format, without accounts and restrictions.
A free file transfer tool with open source code, using the capabilities of an advanced peer-to-peer network, allowing you to transfer files directly without storing them on cloud servers.
@github
#P2P#FileTransfer#share#send#transfer
@etlgr_bot
Qué puede hacer este bot?
Obtén una dirección de correo para cualquier Chat de Telegram (grupo o usuario).
Enviar y recibir correos.
Idioma: Inglés
(visto en @BotsGram_cu)
#send, #mail, #email, #address, #welcome
@Shekelbot
Qué puede hacer este bot?
ShekelBot le ayudará a contar su dinero. Úselo, cuando le das dinero a alguien, o comparte compras.
Idioma: Inglés
(visto en @BotsGram_cu)
#money, #track, #send, #receive, #friends, #debt
@posttobot
Qué puede hacer este bot?
Este bot le ayuda a enviar un mensaje a alguien en Telegram Messenger sin usar Telegram a través de este Bot conectado con una aplicación web.
Idioma: Inglés, Ruso
(visto en @BotsGram_cu)
#web, #pc, #remote, #telegram, #message, #text, #send, #post, #bot, #dictionary
@DebtsTrackerBot
Qué puede hacer este bot?
Este bot realiza un seguimiento de sus deudas y envía recordatorios a usted y a los deudores por Telegram y SMS.
Idioma: Español, Inglés, Ruso, Italiano
(visto en @BotsGram_cu)
#friend, #money, #track, #debt, #send, #receive, #issue, #website, #request