Diğer Python betiklerinde bir Python betiğinden değişken mi kullanıyorsunuz?


9

Tüm veri kaynaklarımın konumlarına sahip değişkenler içeren tek bir python dosyası kurmak istiyorum. Bu daha sonra diğer tüm komut dosyaları tarafından kullanılacak, daha sonra bir veri kaynağı değiştikçe, sadece bir dosyayı düzenlemek zorundayım.

Benim Data_sources.py şöyle bir şey olurdu:

BC_BEC = "Database Connections\\BC.sde\\FOREST_BC.BC_Eco\\BC.BC_BEC"
BC_TFL = "Database Connections\\Forest_BC.sde\\BC.BC_Admin\\BC.TFL_Boundary"

ve bunun gibi...

Diğer tüm komut dosyalarımı bu değişkenleri Data_sources.py dosyasına yükleyebilir veya bu değişkenlere nasıl erişebilirim?


GIS için bir Python modülü veya site paketi yerine saf Python olan bu tür sorular normalde Stack Overflow'da araştırılmalı / sorulmalıdır .
PolyGeo

Yanıtlar:


10

Paketlemek için Distutils kullanarak çalıştırdığınız her Python betiğinden alınabilen yüklü bir Python modülü oluşturabilirsiniz .

Python belgesinden:

Tüm yapmak istediğiniz foo.py dosyasında bulunan foo adlı bir modülü dağıtmaksa, kurulum komut dosyanız şu kadar basit olabilir:

from distutils.core import setup
setup(name='foo',
      version='1.0',
      py_modules=['foo'],
      )

Daha sonra şu şekilde yükleyebilirsiniz:

python.exe setup.py install

Ve sonra foo'yu herhangi bir Python betiğinden içe aktarabilir veya

python.exe setup.py bdist_wininst

Diğer bilgisayarlara dağıtabilmeniz için modül için bir pencere yükleyicisi oluşturmak.


'Byte of Python' kitabında ang içe aktarma modülleri kullanarak yapı örnekleri gösteren güzel bir bölüm var.
11:55

Bir Modül oluşturmanın bu önerisini seviyorum ama bunlardan pek bilgim yok. "Python.exe setup.py install" komutu foo.py için bir işaretçi kullanır mı yoksa şu anda foo.py'de olanı kullanır mı? Daha sonra foo.py dosyasını değiştirirsem modül hala geçerli olur mu? Teşekkürler.
Kullanıcı Hatası

Ben de bu kitabı arayacağım. Jason ve jonatr yardım için teşekkürler.
Kullanıcı Hatası

Kelime düzeltmesi: daha kesin bir python sözcüğü "paket" tir - belgelere bakmak ve paketlerin ve modüllerin python dünyasında iki farklı şey olduğu konusunda açık olmak. Ayrıca, bir öneri / ipucu: Bunu yaparsanız setup.py develop(yerine install), yeniden düzenlemeye gerek kalmadan paketteki düzenlemeler kaydedilir kaydedilmez alınacaktır. (Bu muhtemelen orijinal sorucının data_sources.py için uygundur.)
Dan S.

3
Kullanıcı sadece nasıl içe aktarılacağını sormuyor mu? Aşağıdaki soruya cevap verin.
sgillies


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.