ฉันจะแก้ไขไฟล์อะไรและทำอย่างไร ฉันสร้างสภาพแวดล้อมเสมือนจริง
virtualenvwrapper
คำสั่ง virtualenv
มันไม่ได้เป็นส่วนหนึ่งของ
ฉันจะแก้ไขไฟล์อะไรและทำอย่างไร ฉันสร้างสภาพแวดล้อมเสมือนจริง
virtualenvwrapper
คำสั่ง virtualenv
มันไม่ได้เป็นส่วนหนึ่งของ
คำตอบ:
แก้ไข # 2
คำตอบที่ถูกต้องคือ@ หนึ่ง
หากคุณต้องการเปลี่ยนที่PYTHONPATH
ใช้ใน Virtualenv คุณสามารถเพิ่มบรรทัดต่อไปนี้ในbin/activate
ไฟล์ของ Virtualenv ของคุณ:
export PYTHONPATH="/the/path/you/want"
ด้วยวิธีนี้ระบบPYTHONPATH
จะตั้งค่าใหม่ทุกครั้งที่คุณใช้ Virtualenv นี้
แก้ไข: (เพื่อตอบความคิดเห็นของ @ RamRachum)
หากต้องการคืนค่าเป็นค่าเดิมdeactivate
คุณสามารถเพิ่มได้
export OLD_PYTHONPATH="$PYTHONPATH"
ก่อนบรรทัดที่กล่าวถึงก่อนหน้านี้และเพิ่มบรรทัดต่อไปนี้ในbin/postdeactivate
สคริปต์ของคุณ
export PYTHONPATH="$OLD_PYTHONPATH"
deactivate
หรือไม่?
PYTHONPATH
(global one) แทนที่จะเป็นเส้นทางท้องถิ่น Virtualenv?
ความคิดเห็นโดย @ s29 ควรเป็นคำตอบ:
วิธีหนึ่งในการเพิ่มไดเร็กทอรีให้กับสภาพแวดล้อมเสมือนคือการติดตั้ง Virtualenvwrapper (ซึ่งมีประโยชน์หลายอย่าง) จากนั้นทำ
mkvirtualenv myenv
workon myenv
add2virtualenv . #for current directory
add2virtualenv ~/my/path
หากคุณต้องการลบเส้นทางเหล่านี้ให้แก้ไขไฟล์ myenvhomedir/lib/python2.7/site-packages/_virtualenv_path_extensions.pth
สามารถดูเอกสารเกี่ยวกับ Virtualenvwrapper ได้ที่http://virtualenvwrapper.readthedocs.org/en/latest/
เอกสารเฉพาะเกี่ยวกับคุณลักษณะนี้สามารถพบได้ที่ http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html?highlight=add2virtualenv
add2virtualenv -d
คุณสามารถสร้าง.pth
ไฟล์ที่มีไดเร็กทอรีที่ต้องการค้นหาและวางไว้ในsite-packages
ไดเร็กทอรี เช่น:
cd $(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
echo /some/library/path > some-library.pth
ผลเป็นเช่นเดียวกับการเพิ่ม/some/library/path
การsys.path
และยังคงท้องถิ่นเพื่อvirtualenv
การติดตั้ง
$VIRTUALENV_ROOT/lib/pythonX.Y/site-packages
มันจะอยู่ที่เส้นทางที่ค่อนข้างคาดเดา เอกสารในไฟล์. pth: docs.python.org/3.6/library/site.html
pushd "$(venv/bin/python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")" ...path/to/project/venv/lib/python3.7/site-packages ...path/to/project echo ../../../../src > my_project.pth popd
จากนั้นฉันก็ปิดใช้งาน Virtualenv ของฉันและเปิดใช้งานอีกครั้ง ตอนนี้ฉันสามารถเรียกใช้รหัสโครงการที่ต้องการทราบว่าไดเรกทอรีโครงการของฉันอยู่ที่ไหน
/bin/activate
) เป็นการทุจริตต่อหน้าที่และการติดตั้งเครื่องมือของบุคคลที่สามนั้นด้อยกว่าการใช้วิธีในตัวเพื่อให้ได้สิ่งเดียวกัน
cd venv
source bin/activate
export PYTHONPATH='/home/django/srmvenv/lib/python3.4'
python
\>\> import sys
\>\> sys.path
ฉันแก้ไขสคริปต์เปิดใช้งานเพื่อซอร์สไฟล์.virtualenvrc
หากมีอยู่ในไดเร็กทอรีปัจจุบันและเพื่อบันทึก / เรียกคืนPYTHONPATH
เมื่อเปิดใช้งาน / ปิดใช้งาน
คุณสามารถค้นหาactivate
สคริปต์ที่แก้ไขได้ที่นี่ . เป็นการแทนที่ดร็อปอินสำหรับสคริปต์เปิดใช้งานที่สร้างโดย Virtualenv 1.11.6
จากนั้นฉันเพิ่มสิ่งนี้ใน.virtualenvrc
:
export PYTHONPATH="${PYTHONPATH:+$PYTHONPATH:}/some/library/path"
มีคำตอบแล้วที่นี่ -> สภาพแวดล้อมเสมือน (python) ของฉันทำให้ PYTHONPATH ของฉันพังหรือไม่?
เพิ่ม "export PYTHONPATH = / usr / local / lib / python2.0" ลงในไฟล์ ~ / .bashrc และซอร์สไฟล์โดยพิมพ์ "source ~ / .bashrc" OR ". ~ / .bashrc"
1) ไปที่แผงควบคุม 2) ดับเบิลคลิกระบบ 3) ไปที่แท็บขั้นสูง 4) คลิกที่ตัวแปรสภาพแวดล้อม
ในหน้าต่างตัวแปรระบบให้ตรวจสอบว่าคุณมีตัวแปรชื่อ PYTHONPATH หรือไม่ หากคุณมีอยู่แล้วให้ตรวจสอบว่าชี้ไปยังไดเรกทอรีที่ถูกต้อง หากคุณยังไม่มีให้คลิกปุ่มใหม่แล้วสร้าง
หรือคุณสามารถทำด้านล่างรหัสของคุณ: -
import sys
sys.path.append("/home/me/mypy")