Not: Çözümü buldum ve kendim yanıtladı. Yine de, bu ayarın neden yanlış olduğunu ve soruna neden olduğu hakkında hiçbir fikrim yok. Jython ithalat sisteminin nasıl çalıştığına dair iyi bir açıklama yapmakla hala ilgileniyorum; Eğer kimse ödül kazanmayı umarsa, lütfen cevap verin.Jython modülünden Java sınıfları içe aktarılamıyor
Ben Python hesaplamaları yapmanız gereken varolan bir Java EE proje üzerinde çalışıyorum. Entegrasyon testlerinin ilk aşamalarındayım ama zaten bir sorunla karşı karşıyayım. Chapter 10 of Jython book'u okudum ama yine de bir çözüm bulamıyorum. Ayrıca Chapter 8'u (Kod Yeniden Kullanmaya İlişkin Modüller ve Paketler) okudum, ancak bana göre belirsiz.
Jython içe aktarma sisteminin nasıl çalıştığı ve nasıl yapılandırılacağı hakkında bir açıklama çok takdir edilecektir.
sorun:
$ jython -v
import: 'exceptions' as org.python.core.exceptions in builtin modules
Jython 2.5.3 (2.5:c56500f08d34+, Aug 13 2012, 14:54:35)
[Java HotSpot(TM) Server VM (Oracle Corporation)] on java1.7.0_10
import: import site # precompiled from /home/me/jython/2.5.3/Lib/site$py.class
import: 'sys' as sys in builtin modules
import: import os # precompiled from /home/me/jython/2.5.3/Lib/os$py.class
import: 'errno' as org.python.modules.errno in builtin modules
import: 'posix' as org.python.modules.posix.PosixModule in builtin modules
import: import posixpath # precompiled from /home/me/jython/2.5.3/Lib/posixpath$py.class
import: import stat # precompiled from /home/me/jython/2.5.3/Lib/stat$py.class
import: 'java' as java package
import: 'File' as java class
import: 'IOException' as java class
import: 'org' as java package
import: 'Py' as java class
Type "help", "copyright", "credits" or "license" for more information.
>>> import pendulum.generator.BuildingType
import: import pendulum # precompiled from /path/to/project/build/classes/pendulum/__init__$py.class
import: import pendulum.generator # precompiled from /path/to/project/build/classes/pendulum/generator/__init__$py.class
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named BuildingType
Sorum şu: ne yanlış yapıyorum ve nasıl başarıyla BuildingType arayüzünü ithal etmek şeyler düzeltirim? Belki de problem CLASSPATH'da duruyor, ama hangi değerin uygun olabileceğine dair hiçbir fikrim yok.
Kod organizasyonu: Bir private Jython registry file tarafından tanımlanan
$ tree build/classes/pendulum/generator/ src/pendulum/generator/
build/classes/pendulum/generator/
├── BuildingType.class
├── __init__.py
└── __init__$py.class
src/pendulum/generator/
├── BuildingType.java
└── __init__.py
İthalat yolu:
$ cat ~/.jython
python.path=\
/path/to/project/build/classes:\
/path/to/project/src:\
/home/me/jdevel/extras/2.5.3/Lib:\
/home/me/jdevel/extras/2.5.3/Lib/site-packages
ben sys.path
ile kontrol edildikten çünkü Jython yolları alır eminim Jython istemi.
BuildingType.java
package pendulum.generator;
public interface BuildingType {
public String getBuildingName();
public String getBuildingAddress();
public String getBuildingId();
}
"pendulum'dan deneyin.jeneratör ithal BuildingType" – sarwar
ImportError: adı BuildingType – Paolo
alamıyor jre/lib/ext jython.jar mi –