Anlayamadığım bir şey var. scipy
modül sparse
adında herhangi bir nitelik olmadığı için bu gerçekleşirPython'da bu AttributeError neden oluşur?
AttributeError: 'module' object has no attribute 'sparse'
Anlayamadığım bir şey var. scipy
modül sparse
adında herhangi bir nitelik olmadığı için bu gerçekleşirPython'da bu AttributeError neden oluşur?
AttributeError: 'module' object has no attribute 'sparse'
:
Neden bu
import scipy # happens with several other modules, too. I took scipy as an example now...
matrix = scipy.sparse.coo_matrix(some_params)
ürünler üretmekte bu hatayı yapıyor. Bu özellik sadece import scipy.sparse
olduğunda tanımlanır.
Altmodüller otomatik olarak içe alamadım zaman sadece import scipy
; bunları açıkça almanız gerekiyor. Aynı paket çoğu paket için de geçerlidir, ancak bir paket isterse kendi alt modüllerini içe aktarmayı seçebilir. (Örneğin, scipy/__init__.py
sonra Eğer scipy
içe zaman sparse
alt modülü ithal edilecektir. Bir açıklama import scipy.sparse
, dahil varsa), seyrek scipy değil ithal Çünkü
Bilmiyordum, bu alt modüller otomatik olarak alınmıyor. Teşekkürler! – Aufwind
Aslında, alt modüllerin de otomatik olarak içe aktarılıp aktarılmadığı pakete bağlı. –
@Ethan: true, cevaba bu etkiyle ilgili bir not düzenledim. –
. from scipy import sparse
'u dene? nesneye ayrılan mevcut değilken
AttributeError yükseltilir. , dir()
kullanın mesela
attributeref ::= primary "." identifier
bu nesne için geçerli özellikler listesini döndürmek için:
dir(scipy)
Yani muhtemelen
Bir attribute reference bir süre ve bir isim ardından birincildir basitçe yapmanız gerekir: Python import scipy.sparse
varsayılan ad alanı "__main__"
olduğunu. import scipy
'u kullandığınızda, Python, modül adınız olarak ayrı bir ad alanı oluşturur. Pyhton içinde kural şudur: Eğer tam öznitelik adı kullanmak zorunda başka ad gelen bir öznitelik aramak istediğinizde.
? Modülde 'seyrek' yoksa, ne olmasını beklersiniz? Ben fark etmedi –
, o seyrek SciPy bir * submodule * ve submodüller *** ** otomatik * ithal olmadığını - @ David Zaslavsky aşağıda belirttiği gibi. – Aufwind
downvoters neden reddedildiğini açıklamalı, bu sorunun ne olduğunu anlamıyorum. Aslında, bu çok iyi bir soru olduğunu düşünüyorum – juliomalegria