Saya ingin berlari:
python somescript.py somecommand
Tapi, ketika saya menjalankan ini, saya perlu PYTHONPATH
menyertakan direktori tertentu. Saya tidak bisa begitu saja menambahkannya ke variabel lingkungan saya karena direktori yang ingin saya tambahkan berubah berdasarkan proyek apa yang saya jalankan. Apakah ada cara untuk mengubah PYTHONPATH
saat menjalankan skrip? Catatan: Saya bahkan tidak memiliki PYTHONPATH
variabel, jadi saya tidak perlu khawatir tentang menambahkannya vs menimpanya selama menjalankan skrip ini.
python
pythonpath
orokusaki
sumber
sumber
PYTHONPATH=/foo/bar python somescript.py somecommand
python -c"import sys;sys.path.append('/my/dir')"
dan kemudianpython myscript.py mycommand
, tetapi jelas tidak membagikan jalur dari sesi penerjemah pertama dengan sesi berikutnya. Ah, baru saja melihat komentar Anda berikutnya, mencoba sekarang ... Tidak berfungsi di WinXP.unset
perintah variabel lingkungan di Windows. Sebagai gantinya tambahkansetlocal
setelah inisialecho off
dan kemudian implisitendlocal
akan terjadi ketika skrip .bat berakhir (danPYTHONPATH
akan dikembalikan ke nilai sebelumnya).PYTHONPATH
, Anda mungkin ingin menggunakanset PYTHONPATH=%PYTHONPATH%;%1
.import sys sys.path.append('your certain directory')
Pada dasarnya sys.path adalah daftar dengan semua jalur pencarian untuk modul python. Ini diinisialisasi oleh penerjemah. Konten PYTHONPATH secara otomatis ditambahkan ke akhir daftar itu.
sumber
sys.path.append(r'D:\PyCharmProjects\cheese_shoppe')
contoh di Windows.Jika Anda menjalankan perintah dari shell yang sesuai dengan POSIX, seperti
bash
, Anda dapat menyetel variabel lingkungan seperti ini:PYTHONPATH="/path/to" python somescript.py somecommand
Jika semuanya dalam satu baris, nilai lingkungan PYTHONPATH hanya berlaku untuk satu perintah itu.
$ echo $PYTHONPATH $ python -c 'import sys;print("/tmp/pydir" in sys.path)' False $ PYTHONPATH=/tmp/pydir python -c 'import sys;print("/tmp/pydir" in sys.path)' True $ echo $PYTHONPATH
sumber
python -c "import sys; sys.path.insert(0,'my/path'); import mymodule"
tidak berhasil.Anda dapat mencoba ini untuk menjalankan fungsi di dalam skrip Anda
python -c "import sys; sys.path.append('/your/script/path'); import yourscript; yourscript.yourfunction()"
sumber
Ini untuk windows:
Misalnya, saya memiliki folder bernama "mygrapher" di desktop saya. Di dalamnya, ada folder bernama "kalkulasi" dan "grafik" yang berisi file Python yang dibutuhkan oleh file utama saya "grapherMain.py". Selain itu, "grapherMain.py" disimpan di "grafik". Untuk menjalankan semuanya tanpa memindahkan file, saya dapat membuat skrip batch. Mari kita sebut file batch ini "rungraph.bat".
@ECHO OFF setlocal set PYTHONPATH=%cd%\grapher;%cd%\calculation python %cd%\grapher\grapherMain.py endlocal
Skrip ini terletak di "mygrapher". Untuk menjalankan sesuatu, saya akan masuk ke command prompt saya, lalu lakukan:
>cd Desktop\mygrapher (this navigates into the "mygrapher" folder) >rungraph.bat (this executes the batch file)
sumber