премахнете завинаги директорията от пътя на python

Наскоро добавих някои неща към моя път на python, които не искам там, използвайки:

export PYTHONPATH=$PYTHONPATH:/my/path

Можете да използвате sys.path.remove, за да премахнете нещо в пътя, но това не е 100% постоянно като начина, по който го добавих с оператора на командния ред по-горе.

какво мога да направя, за да премахна за постоянно директории от пътя на python?


person Ryan Saxe    schedule 08.10.2013    source източник
comment
os.system("export PYTHONPATH=%s"%(":".join(sys.path),)) вероятно ще работи ... въпреки че не съм сигурен какво имате предвид под постоянно ... експортирането обикновено работи само до рестартиране ... обикновено имате .bashrc файл, който прави такива неща всеки път, когато стартирате   -  person Joran Beasley    schedule 08.10.2013
comment
Просто изтрийте директориите.   -  person Games Brainiac    schedule 09.10.2013


Отговори (5)


Ако редът, който споменавате, е във вашия .bashrc, трябва да е безопасно просто да го изтриете.

Точно както си стои, това, което казва редът, е „добавете /my/path към PYTHONPATH“, така че трябва да е доста безопасно, дори ако има други около вашия .bashrc.

person Alois Mahdal    schedule 08.10.2013

Ако просто изтриете реда "export PYTHONPATH=..." в .bashrc и направите "source .bashrc", тези директории все още ще бъдат в sys.path.

За разлика от "export PATH" в .bashrc, изглежда, че когато експортирате някои директории в PYTHONPATH, те се изхвърлят в някакъв файл, който python винаги може да провери.

И така, това, което трябва да направите, е "export PYTHONPATH=" (експортиране на празен низ) и да направите "source .bashrc". Това ще изчисти всичко, което сте експортирали в PYTHONPATH преди в .bashrc.

person Zack Su    schedule 28.08.2014
comment
Благодаря. Това работи за мен: export PYTHONPATH="" && source ~/.bashrc - person warriorUSP; 17.04.2020

Първо, от терминала вземете всичко по пътя си, като използвате

env | grep PYTHONPATH

След това експортирайте пътя си и премахнете ръчно всичко, от което вече не се нуждаете:

export PYTHONPATH=[this is where you paste the corrected paths, no square brackets needed]

Ако рестартирате сесията си и не сте променили нищо в .bashrc, можете просто да затворите и да отворите отново сесията си.

person mgoldwasser    schedule 08.10.2013
comment
Това е правилният начин да го направите, като се има предвид, че винаги искате да изпълнявате своите проекти на Python на virtualenv и не трябва да променяте системния си .bashrc файл. - person Azim; 28.11.2018

Вашият постоянен Python път обикновено се задава чрез файл за стартиране на обвивката като ~/.bashrc.

Модифицирането на променливата PYTHONPATH в рамките на обвивката ще промени само нейната стойност за текущия екземпляр на вашата обвивка и неговите деца, когато използвате „експортиране“, но в никакъв случай не е предназначено да промени стойността й за постоянно.

Използвайте следната команда, за да намерите къде да промените пътя си:

grep -l PYTHONPATH ~/.*

Ако е твърдо кодиран в стартиращ файл, редактирайте стойността му там, създайте нова обвивка и готово!

Алтернативно пътят може да бъде добавен към пътя на Python чрез .pth файл в неговия съществуващ път, който препраща към друго местоположение.

Ако случаят е такъв, изтриването му за постоянно от пътя на Python трябва да бъде толкова просто, колкото изтриването на този файл.

person remote    schedule 08.10.2013

Това е за потребители на Windows. така че ако имате персонализиран модул, инсталиран с помощта на pip install --user -e <package>.

Тогава пътят на модула може да бъде намерен в .pth файл. Обикновено се нарича easy-install.pth и може да се намери в директорията на пакетите на сайта. Опитайте да премахнете записите от този файл и след това проверете отново sys.path.

person Chandan Kumar    schedule 15.05.2020
comment
Това беше и случаят с MacOS -- моят sys.path беше модифициран от /usr/local/lib/python3.9/site-packages/easy-install.pth. Благодаря, че публикувахте този коментар, никога не бих го намерил иначе! - person Michael Brundage; 19.06.2021