2016-01-01 27 views
6

pycharm yapılandırılmış virtualenv, göz ardı ederek baz tercüman kullanmak gibi görünüyor seçilen kullanmaz.pycharm Virtualenv

$ . virtualenv/bin/activate 
(virtualenv)janos at kronos in ~/dev/git/github/bashoneliners on master 
$ pip -V 
pip 1.5.6 from /Users/janos/dev/git/github/bashoneliners/virtualenv/lib/python3.4/site-packages (python 3.4) 
(virtualenv)janos at kronos in ~/dev/git/github/bashoneliners on master 
$ pip freeze 
Django==1.9 
Markdown==2.6.5 
PyJWT==1.4.0 
defusedxml==0.4.1 
oauthlib==1.0.3 
pep8==1.6.2 
pyflakes==1.0.0 
python-social-auth==0.2.13 
python3-openid==3.0.9 
requests==2.9.1 
requests-oauthlib==0.6.0 
six==1.10.0 
tweepy==3.5.0 

Ama pycharm bu virtualenvProje Yorumcuyu eklerseniz, tamamen farklı gösterir: /Users/janos/dev/git/github/bashoneliners de Projemde

Ben kesinlikle benim projenin bağımlılıkları içinde yüklü olan bir virtualenv alt dizin var paketler:

enter image description here

Bu paket çağlar benim sistemimin /opt/local/bin/python taban yorumlayıcısında olduğu gibidir. Bu beni deli ediyor, gerçekten sistemden virtualenv, değil gelen paketleri kullanmanız gerekir.

Bu, PyCharm Community Edition 5.0.3 ile geçerlidir.

Daha önce PyCharm'ın eski sürümleriyle bu sorunu yaşamadım. Tamamen yeni virtualenv, , hem komut satırında hem de PyCharm, kullanarak ve önbellekleri geçersiz kılıp yeniden başlatmayı denedim, ancak hiçbir şey işe yaramıyor gibi görünüyor. PyCharm daima aynı paket listesini gösterir, ve virtualenv paketlerini gösterir. PyCharm, içinde boş bir virtualenv oluştursam bile, boş değil, aynı paketler listesiyle doldurulur.

Projem, Django yönetim komutlarını, birim testlerini, her şeyi çalıştıran komut satırı gibi, komut satırında işleri yürüttüğümde mükemmel çalışır. Sadece PyCharm'ta sorun yaşıyorum. Pycharm, kullanılarak

Ben örnek Django için, paketler yüklemeye çalışırsanız

, bu hatayı alıyorum: izni /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages yalanladı

enter image description here

Tabii ki sistem tercüman var. Paket, , ancak /Users/janos/dev/git/github/bashoneliners/virtualenv içinde yüklemeye çalışıyor olmalıdır.

Açıkçası, virtualenv numaralı telefondan pip kullanılmıyor, ancak sistemden. virtualenv'dan birini kullanmam gerekiyor.

+0

jetbrains youtrack ile ilgili bir sorun mu yaşıyorsunuz? – Sayse

+0

Global paketleri sanal ortamlarınızdan mı ayırıyorsunuz? – jonrsharpe

+0

@ jonrsharpe Bildiğim kadarıyla değil. Sanalenv --distribute virtualenv ile envs'imi yaratıyorum. Ama problemin Python'u kurmamla ilgili bir şey olabileceğini düşünmeye başladım (macports, ama detayları hatırlamıyorum). Örneğin, sanal bir sistemin dışında, 'pip' python ile senkronize değildir. Yani, bir 'python' kabuğunda' pip freeze' tarafından gösterilen paketleri içe aktaramıyorum. Belki ilk önce onu sıralıyorum (çok iyi yapmalıyım), belki de PyCharm sihirli bir şekilde çalışmaya başlayacaktır. – janos

cevap

2

Bu JetBrains, konu izleme sisteminde bir hata olarak günlüğe kaydedilir, böylece umarım yakında dizilmiş olacak.

https://youtrack.jetbrains.com/issue/PY-18074

Geçici bir pycharm bir önceki sürümüne geri düşmek etmektir:

Jan 6 2016 tarihi itibariyle

https://confluence.jetbrains.com/display/PYH/Previous+PyCharm+Releases

, virtualenv pycharm 4.5.4 benim için gayet iyi çalışıyor. Daha önce PyCharm 5.0.3 kullanılarak kaydedilmiş olan virtualenv ürününün bir kısmı geçersiz görünüyor, ancak sorun değil. Aslında tüm kayıtlı tercümanları sildim ve sadece ihtiyacım olan virtualenv'u tekrar ekledim.

Bu eski sürümle ilgili garip bir şey, PyCharm'ın yanlış Python sürümünü (3.5 yerine 2.7) göstermesidir, ancak virtualenv'a göre modüllerin doğru listesini gösterir ve editör yapı hataları göstermez. Bu yüzden Python sürümü karması problemlere neden olmaz (sadece biraz korkutucu).

+0

İzleyici bağlantısı için teşekkürler. Aynı sorunu, macports ile kurulan python'u rapor ediyorum. Aslında, benim için geçici çözüm, python2.7'yi yüklemek ve seçmek oldu. Beklendiği gibi 2.7 çalışma ile, bu açıkça bir 3.x sorun (3.3 ve 3.5 ile çalıştı) –