รากของปัญหามักจะเป็นสคริปต์ที่ล้าสมัยในไดเรกทอรีย่อยbin
(Linux) หรือScripts
(Windows) ฉันจะอธิบายปัญหานี้โดยใช้ฉันพบว่าตัวเองเป็นตัวอย่าง
ฉันติดตั้ง virtualenv เวอร์ชั่น 1.10 ในแพ็คเกจผู้ใช้เว็บไซต์ของฉันแล้ว (ความจริงมันอยู่ในแพ็คเกจไซต์ผู้ใช้ที่ไม่ใช่ sytem site-packages ไม่เกี่ยวข้องกับที่นี่)
pdobrogost@host:~$ which virtualenv
/home/users/pdobrogost/.local/bin/virtualenv
pdobrogost@host:~$ virtualenv --version
1.10
หลังจากฉันอัพเกรดเป็นเวอร์ชั่น 1.11 ฉันได้รับข้อผิดพลาดต่อไปนี้:
pdobrogost@host:~$ virtualenv --version
Traceback (most recent call last):
File "/home/users/pdobrogost/.local/bin/virtualenv", line 5, in <module>
from pkg_resources import load_entry_point
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 2701, in <module>
return self.__dep_map
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 572, in resolve
if insert:
pkg_resources.DistributionNotFound: virtualenv==1.10
ไฟล์ที่/home/users/pdobrogost/.local/bin/virtualenv
กล่าวถึงในข้อความแสดงข้อผิดพลาดมีลักษณะดังนี้:
#!/opt/python/2.7.5/bin/python2.7
# EASY-INSTALL-ENTRY-SCRIPT: 'virtualenv==1.10','console_scripts','virtualenv'
__requires__ = 'virtualenv==1.10'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('virtualenv==1.10', 'console_scripts', 'virtualenv')()
)
ที่นั่นเราเห็นว่าvirtualenv
สคริปต์ไม่ได้รับการอัพเดตและยังคงต้องการ virtualenv เวอร์ชัน 1.10 ที่ติดตั้งไว้ก่อนหน้านี้
ตอนนี้การติดตั้ง virtualenv แบบนี้อีกครั้ง
pdobrogost@host:~$ pip install --user --upgrade virtualenv
Downloading/unpacking virtualenv from https://pypi.python.org/packages/py27/v/virtualenv/virtualenv-1.11.1-py27-none-any.whl#md5=265770b61de41d34d2e9fdfddcdf034c
Using download cache from /home/users/pdobrogost/.pip_download_cache/https%3A%2F%2Fpypi.python.org%2Fpackages%2Fpy27%2Fv%2Fvirtualenv%2Fvirtualenv-1.11.1-py27-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv
Cleaning up...
ไม่ช่วย (ไม่pip install --user --upgrade --force-reinstall virtualenv
) เพราะสคริปต์/home/users/pdobrogost/.local/bin/virtualenv
ไม่มีการเปลี่ยนแปลง
วิธีเดียวที่ฉันสามารถแก้ไขได้คือการลบ virtualenv * script จาก/home/users/pdobrogost/.local/bin/
โฟลเดอร์และติดตั้ง virtualenv อีกครั้งด้วยตนเอง หลังจากนี้สคริปต์ที่สร้างขึ้นใหม่อ้างถึงแพ็คเกจที่เหมาะสม:
pdobrogost@host:~$ virtualenv --version
1.11