PyCharm geçerli kod için çözülmemiş referans hatası gösteriyor


279

Bir proje üzerinde çalışmak için PyCharm kullanıyorum. Proje bir tercümanla açılır ve yapılandırılır ve başarıyla çalıştırılabilir. Uzak yorumlayıcı yolları doğru şekilde eşlendi. Bu doğru yapılandırma gibi görünüyor, ancak PyCharm, yerleşik Python işlevleri için bile geçerli kodumu "çözülmemiş başvuru" hatalarıyla vurguluyor. Kod çalışmasına rağmen bunlar neden algılanmıyor gibi görünüyor? PyCharm'ın bunları doğru bir şekilde tanımasını sağlamanın bir yolu var mı?


Sorunun bu özel örneği uzak bir çevirmene aittir, ancak sorun yerel çevirmenlerde de görülür.


Aynı problemim var ve çözdüm. İşte çözüm .
Maks

Yanıtlar:


445

Dosya | Önbellekleri Geçersiz Kıl ... ve PyCharm'ı yeniden başlatmak yardımcı olur.


3
Benim durumumda PyCharm 4.0.x üzerinde çalışmanın tek yolu bu. Gerçek şu ki eğer bir şey berbatsa ve yenilemezse (bazen listede birkaç kez tekrarlanan aynı yorumlayıcıyı bile gösterir) dosyaları manuel olarak silmeniz gerekir ... Hatta bir kez .idea klasörlerini kaldırmak zorunda kaldım .
danius

10
Bu çok ağır. PyCharm 4.5'de eski "yenileme yolu" seçeneğini geri almanın bir yolu yok mu?
Chris Withers

6
Böyle bir IDE'nin bu kadar basit bir operasyonla ilgilenmemesi gerçekten can sıkıcı.
Eduardo Pignatelli

3
Anlık çalışır. Birkaç dakika sonra tekrar aynı uyarıyı
alıyorum

Kabul edilen cevap ağırdır ve büyük olasılıkla sorunun temelini ele almaz. İşte doğrudan atların ağzından bilgi: JetBrains - PyCharm İçerik Kökü "PyCharm kaynak kökleri ithalatı çözmek için başlangıç ​​noktası olarak kullanır" Ben tam olarak başlıkta olduğu gibi sorun vardı çünkü bazı projelerde kaynakları nerede bir dosya ağacı kullanmanız gerekir bir alt klasörde, PyCharm ithalatı karıştırır. Önbellek öldürmek bir an için yardımcı olabilir, ancak doğru yaklaşım değildir. Resources dizinini root olarak işaretleyin ve hepsi iyi.
predmod

133

Dmitry'nin yanıtı benim için işe yaramadı.

Proje Tercümanlarına gidip, "Yollar" sekmesini seçerek ve o alt menüdeki yenile düğmesine basarak madeni çalıştırdım. "Python-skeletons" adlı bir şeyle otomatik olarak doldurulur.

edit : PyCharm 3.4.1 kullanarak ekran görüntüsü (oldukça iyi gizli)

resim açıklamasını buraya girin


6
"Python Tercümanları" nerededir. Şunu mu demek istediniz: "Project Interpreters"? Linux kullanıyorum ve Yollar sekmesini de bulamadım.
Baskaya

1
OSX'teki PyCharm 3.4'te, küçük bir klasör ağacına benzeyen ve "Yollar" demeyen bir simgedir.
Daniel Bushman

12
Hala karışan herkes için (PyCharm 3.4.1'de):Settings > Project Settings > Project Interpreter > Project Interpreters (gear button > more) > --Select the interpreter-- > Interpreter Paths (Directory Tree button on the right) > Reload List of Paths (Blue refresh-like button)
raphaeltm

5
PyCharm 4'te böyle bir yenileme düğmesi yok, sadece artı ve eksi işaretleri.
15th

3
@Sarah PyCharm 4.0.4'te, "Yorumlayıcı Yolları" penceresinde, "yol listesini yeniden yükle" düğmesine (alt mavi yenileme simgesi) sahip değilim. Ayrıca, listede herhangi bir yol görmüyorum ve artı ve eksi düğmeleri devre dışı.
Henrik Heimbuerger

70

Bunun birçok çözümü var, bazıları diğerlerinden daha uygun ve her zaman işe yaramıyorlar.

"Hızlı" dan "sinir bozucu" ya geçerek deneyebileceğiniz tek şey:

  • Yapın File-> Invalidate Caches / Restartve PyCharm'ı yeniden başlatın.
    • Bunu, emin olmak için aşağıdaki yöntemlerden herhangi birinden sonra da yapabilirsiniz.
  • İlk olarak, hangi tercümanı çalıştırdığınızı kontrol edin: Run-> Edit Configurations-> Configuration-> Python Interpreter.
  • Tercümanınızın yollarını yenileyin:
    • File -> Settings
    • Project: [name]-> Project Interpreter-> 'Proje Tercümanı': Dişli çark simgesi ->More...
    • 'Yolları göster' düğmesini tıklayın (altta)
    • 'Yenile' düğmesini tıklayın (altta)
  • Yorumlayıcıyı kaldırın ve tekrar ekleyin:
    • File -> Settings
    • Project: [name]-> Project Interpreter-> 'Proje Tercümanı': Dişli çark simgesi ->More...
    • 'Kaldır' düğmesini tıklayın
    • 'Ekle' düğmesini tıklayın ve yorumlayıcıyı tekrar ekleyin
  • Proje tercihlerinizi silin
    • Projenizin .ideaklasörünü silin
    • PyCharm'ı kapatıp yeniden açın
    • Projenizi sıfırdan açın
  • PyCharm kullanıcı tercihlerinizi silin (ancak önce yedekleyin).
    • ~/.PyCharm50 Mac'te
    • %homepath%/.PyCharm50 Windows'ta
  • Başka bir tercümana geçin, sonra tekrar istediğiniz tercümeye geri dönün.
  • Yeni bir sanal ortam oluşturun ve bu ortamların yorumlayıcısına geçin.
  • Tamamen başka bir tercümana geçin, geri dönmeyin.

PyCharm'ı kullandığım sürece bu sorunu yaşıyorum ve hala güvenilir bir şekilde düzeltemiyorlar. İşin çoğunu şu ya da bu şekilde ele aldığınız iyi bir şey, sorunu çözüyor. Komik ne zaman bu cevaba geri geldiğimi anlamak için etrafta ne işe yaradığını denemeyi unuttum.
Alex

3
Bu listede ilerlemeye çalıştım ve benim için çalışmış olan tercümanı kaldırıp tekrar ekledim. Teşekkürler!
Mark

16

Benim durumumda bu dizin yapısı oldu. Projem şöyle görünüyor:

+---dir_A
    +---dir_B
        +app
        |
        \-run.py

Bu yüzden dir_b> "dizini"> "proje kökü" olarak işaretleyin


2
Soru, PyCharm'ın proje kodunu tanımaması değildi . Standart Python yerleşik yöntemlerini tanımıyor.
florisla

MacOS'ta PyCharm 2019.3.3'teki sorunumu çözdüm
samisnotinsane

11

Önbellekleri Geçersiz Kılma veya Yolları Yenileme çalışmadığında bu sorunu gidermek için uzaktan yorumlayıcıyı kaldırıp yeniden ekleyerek kendimi buluyorum.

Birden çok vm kurulumuma yeni bir VM eklersem vagrant ve her seferinde kullanıyorum, iletilen bağlantı noktası değişir ve SSH için yanlış bağlantı noktasını kullanmaya çalıştığında bu PyCharm'ı karıştırıyor gibi görünüyor. Bağlantı noktasını değiştirmek bozuk referanslara yardımcı olmaz.


10

Diğer çözümlerin hiçbiri sizin için işe yaramıyorsa, ~ (.PyCharm40) klasörünüzü silmeyi (yedeklemeyi) ve ardından PyCharm'ı yeniden açmayı deneyin. Bu, tüm tercihlerinizi de öldürecektir.

Mac'te ~ / Library / Caches / Pycharm40 ve ~ / Library / Preferences / PyCharm40'ı silmek istiyorsunuz.

Ve Windows'ta: C: \ Kullanıcılar \ $ USER.PyCharm40.


10

Bu adımları izleyerek PyCharm 4.0.6 (OSX 10.10.3) ile test edilmiştir:

  1. PyCharm menüsünü tıklayın.
  2. Proje Tercümanı'nı seçin.
  3. Dişli simgesini seçin.
  4. Diğer düğmesini seçin.
  5. Bulunduğunuz Proje Tercümanını seçin.
  6. Dizin Ağacı düğmesini seçin.
  7. Yol listesini yeniden yükle'yi seçin.

Sorun çözüldü!


10

çok kolay

kök dizininizi şu şekilde işaretlemeniz gerekir: SOURCE ROOT (kırmızı) ve uygulamalarınız: EXCLUDED ROOT (mavi),

çözülmemiş referans kaybolacaktır.

  • resim açıklamasını buraya girinPyChram pro kullanıyorsanız bunu sizin için otomatik olarak yapın.

5
Pycharm pro'm var ve bunu benim için yapmadı, ancak klasörleri manuel olarak doğru bir şekilde işaretledikten sonra çalıştı
Jose

Evet, bu doğru yanıttır ve yan etkinin bir an için yardımcı olduğu ancak jetbra takımlarının nasıl düşündüğünü ("önbelleği öldür", doğru ... ve yeniden yapıldığında? " ! "). Projelerimde tam olarak sorun olan başlık, proje kökünün mutlaka kaynak kök ve ithalat olmadığı anlamına gelmiyor. İşte doğrudan atların ağzından bilgi jetbrains.com/help/pycharm/content-root.html "PyCharm, kaynak köklerini ithalatın çözümü için başlangıç ​​noktası olarak kullanıyor"!
predmod

6

Bu soruya çarptığım için üzgünüm, ancak yapmak için önemli bir güncellemem var.

Bunun dışında başka bir sürüm kullanıyorsanız, proje yorumcunuzu Python 2.7.6'ya geri almak isteyebilirsiniz.


1
Yerel Python 2 yorumlayıcısına geçip tekrar uzak Python 3 yorumlayıcısına geri dönmek bunu benim için düzeltti.
James Fletcher

Bu PyCharm 5 profesyonelinde de çalışır. Bu yayındaki diğer çözümlerin hiçbiri benim için çalışmadı. İçeri girdim Settings -> "Project Interpreters", vitese tıkladım ve sonra "More...". Varsayılan python yorumlayıcısını ( /usr/bin/python2.7benim durumumda) seçin, "Ok"ve düğmesine basın "Apply". Daha sonra geri döndü ve kullanmak istediğim gerçek virtualenv'i seçtim. "Ok"ve "Apply"tekrar, ve düzeltildi.
Josh

Benzer şekilde FileNotFoundErrorsadece Python-3'tür. Dosya-Ayarlar-Proje-Yorumlayıcı ve Çalıştır-Düzenle-Yapılandırmalar içinde doğru yorumlayıcı ayarladıktan sonra, bunlardan biri hatayı ortadan kaldırdı.
Bob Stein

3

Pycharm'ı kapatmayı, .ideaklasörü projenizden silmeyi , ardından Pycharm'ı yeniden başlatmayı ve projeyi yeniden oluşturmayı deneyebilirsiniz. Bu benim için çalıştı, ancak önbellek geçersiz kılmadı.


2

Sonunda, önerilen çözümlerin hiçbiri benim için çalışmazsa bu işi aldım. Ben bir django dinlenme çerçeve projesi ile oynuyordum ve ben onunla kurulum vardı bir virtualenv kullanıyordum. Kök klasörü kaynak kökü olarak işaretleyerek Pycharm'ı düzeltmeyi başardım, ancak django'nun sunucusu çözüm istisnalarını atacaktı. Yani biri diğerinin işe yaramadığı zaman işe yarayacaktır ve tersi de geçerlidir.

Sonuçta alt klasörü pycharm'ın kaynak kökü olarak işaretlemek zorunda kaldım. Yani benim yapım şöyleydi

-playground
     -env
     -playground

Bu ikinci oyun klasörü, her şeyin beklendiği gibi çalışması için kaynak kökü olarak işaretlemem gereken klasör. Bu benim senaryom için herhangi bir sorun yaratmadı, bu yüzden uygulanabilir bir çözümdü.

Başka birinin kullanabilmesi durumunda paylaşacağımı düşündüm.


2

Ayrıca bir python sürümü sorunu da olabilir. Çalışması için doğru olanı seçmek zorunda kaldım. resim açıklamasını buraya girin


2

Yalnızca bazı "çözümlenmemiş başvuru" hatalarını yoksaymak istiyorsanız, bunu sınıfınızın / yönteminizin / işlevinizin önüne koyarak PyCharm'a açıkça söyleyebilirsiniz:

# noinspection PyUnresolvedReferences

1

Diğer tüm projeleri kapattım ve gerekli projemi Pycharm'da tek başına çalıştırdım. Pycharm'dan ayrı bir virtualenv oluşturdum ve gerekli tüm modülleri pip kullanarak ekledim. Bu sanal ortamı projenin yorumlayıcısına ekledim. Bu benim sorunumu çözdü.


1

Ne bir kabus, farklı StackOVerflow benim birleşim cevaplar:

  1. Yerel yorumlayıcı /usr/bin/pythonX.X dosyasına geçin ve uygulayın
  2. Yukarıdaki yanıt gibi yolları görüntüleyin
  3. İskeletler yolunu bulun. Benimki (/home/tim/Desktop/pycharm-community-2016.2.3/helpers/python-skeletons)
  4. Sanal yorumlayıcıya geri dönün ve otomatik olarak görünmediyse iskeletler yolunu manuel olarak ekleyin.

1

Yukarıdaki çözümlerin hiçbiri benim için işe yaramadı!
Projeniz için sanal ortam kullanıyorsanız python.exe, sanal ortam dizininizdeki dosyayı proje için yorumlayıcı olarak uyguladığınızdan emin olun, (Alt + Ctrl + Shift + S) bu benim için sorunu çözdü.


1

Benim durumumda inceleme hatası çok özel bir python kodu nedeniyle ortaya çıkıyor. İki numpy işlevi ve iki liste erişimi içeren bir min işlevi, kod denetimimin bu tür hatalar vermesini sağlar.

Aşağıdaki örnekte 'd = 0' satırının kaldırılması, beklendiği gibi çözülmemiş bir başvuru hatası veriyor, ancak okuma, kod denetçisi için hatayı ortadan kaldırmıyor. Daha sonra sorunsuz bir şekilde kodu yürütebilirim.

import numpy as np
def strange(S, T, U, V):
    d = 0
    print min(np.abs(S[d]), np.abs(T[d]), U[d], V[d])

Önbellekleri temizlemek ve yol listesini yeniden yüklemek işe yaramıyor. Kodu yalnızca aşağıdaki örnek düzeltme eklerinden biriyle değiştirmek işe yarar:

  • 'Min' parametrelerinin başka bir sıralaması: şematik olarak SUTV, ancak STUV veya TSUV değil
  • İşlev yerine bir yöntem kullanma: np.abs (S [d]) yerine S [d] .abs ()
  • Yerleşik abs () işlevini kullanma
  • Seçtiğiniz bir parametreye sayı ekleme: U [d] + 0.

1

Cevapların hiçbiri sorunumu çözmedi.

Benim için bunu yapan, çevreleri değiştirmek ve aynı ortama geri dönmekti. File->Settings->Project interpreter

Conda ortamları kullanıyorum.


1

Benim için çok daha basit bir eylemle çalıştı :


File > Settings > Project > Project Interpreter 
> Select "No interpreter" in the "Project interpreter" list 
> Apply > Set your python interpreter again > Click Apply

Kar - Pycharm iskeletleri güncelliyor ve her şey yolunda.


0

Eğer vagranthata kullanıyorsanız yanlış python yorumlayıcı neden olabilir. Bizim in vagrantkullandığımız pyenvDeğişmek zorunda Python Interpreter pathdan yolunu /usr/bin/pythonetmek/home/vagrant/.pyenv/versions/vagrant/bin/python resim açıklamasını buraya girin



0

Benim sorunum Flask-WTF PyCharm tarafından çözülmemiş olmasıdır . Önbelleği ve Yeniden Başlat'ı yeniden yüklemeye ve yüklemeye veya Geçersiz Kılmaya çalıştım kılmayı PyCharm'ı denedim, ancak yine de çalışmıyor.

Sonra bu çözümü buldum ve benim için mükemmel çalışıyor.

  1. Açık Projesi Tercüman tarafından Ctrl + Alt + S sonra (Windows) ve tıklama (+) takın yeni packgage.

resim açıklamasını buraya girin

  1. PyCharm tarafından çözülmeyen paketi yazın ve Paketi Yükle'yi tıklatın . Ardından OK .

resim açıklamasını buraya girin

Şimdi, kitaplığınızın çözüldüğünü göreceksiniz.


-1

Virtualenv mi kullanıyorsunuz?

öyleyse, istenen python.exe dosyasının konumundaki her değişiklik için PyCharm'ı bilgilendirmeniz gerekir (PyCharm için yalnızca ./activate yeterli değildir)

Pycharm'ın doğru interpetoru ve paketleri gösterdiğinden emin olun: Dosya -> Ayarlar -> Proje -> Proje Tercüman. Vitesi tıklayın ve virtualenv'in Scripts klasörü altındaki python.exe'yi seçin

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.