Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności:
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: Jak w łatwy sposób dodać katalog do import?  (Przeczytany 105 razy)
« : 20:56 04/02/19 »
szymon1051 Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 33


Jak w łatwy sposób dodać katalog do import?

Chodzi mi jak zrobić żebym nie musiał za każdym razem pisać
Kod
import sys 
sys.path.insert(0, "E:\\Python")
Zapisane
« Odpowiedz #1 : 21:03 04/02/19 »
rafal Offline
Hello World!

Zobacz profil WWW
*

Reputacja: 19
Płeć: Mężczyzna
Wiadomości: 59


Dlaczego tak robisz? To nie wygląda "normalnie".

Jeśli chcesz instalować zależności do swoich projektów, zobacz czym jest virtualenv albo pipenv:

https://virtualenv.pypa.io/en/latest/
https://github.com/pypa/pipenv
Zapisane

Misago - Python Forum Software.
« Odpowiedz #2 : 21:07 04/02/19 »
Guaz Offline
Professional Python User

Zobacz profil
***

Reputacja: 53
Płeć: Mężczyzna
Wiadomości: 412


W linuxie możesz zrobić to dowiązaniami, na przykład:

Kod
\/ Twoja_Ścieżka
    > __main__.py
    > python #~ Dowiązanie do E:\Python
    \/ otherlibs #~ Dowiązanie np. do D:\my_libs
         biblioteka.py

I w pliku __main__.py możesz np. robić import w ten sposób:
Kod
import otherlibs.biblioteka

Jednak sam musisz sobie sprawdzić czy tak samo to będzie działać ze skrótami w windows Uśmiech

@Edit:
Ale jak kolega wyżej zauważył, virtualenv'em również można to zrobić.
Jednak jeśli się uprzesz, to bardziej zalecaną metodą będzie już zrobienie katalogu submodules, i dowiązania do folderów wewnątrz submodules.
Zapisane

Python 3.5+ / Mint

Daje wędkę zamiast ryby. Chyba że ktoś się chce czegoś nauczyć, wtedy chętnie pomogę każdemu.
Za rybę niestety trzeba zapłacić Z politowaniem.
« Odpowiedz #3 : 20:18 10/02/19 »
szymon1051 Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 33


Dlaczego tak robisz? To nie wygląda "normalnie".

Jeśli chcesz instalować zależności do swoich projektów, zobacz czym jest virtualenv albo pipenv:

https://virtualenv.pypa.io/en/latest/
https://github.com/pypa/pipenv

A jak mam importować funkcje z innych plików?
Bo w książce z której się uczę było na razie pobierznie opisane, przy jakimś zagadnieniu i teraz przy zakresach "def" warstwy lokalna, zewnętrzna funkcja, globalna i wbudowane.
Zapisane
« Odpowiedz #4 : 18:27 11/02/19 »
Guaz Offline
Professional Python User

Zobacz profil
***

Reputacja: 53
Płeć: Mężczyzna
Wiadomości: 412


Załóżmy masz plik foo z funkcjami `hobo` i `bobo` oraz mienną `a` zainicjalizowaną poza funkcjami jako wartość 3
Teraz masz trzy drogi:
Kod
from twoj_plik_foo import hobo
 
hobo() # Zadziała
bobo() # Nie zadziała
a #Nie będzie jeszcze zdeklarowane
Druga:
Kod
 import twoj_plik_foo
foo.hobo() #Zadziała
foo.bobo() #Zadziała
foo.a #Będzie mieć przypisane 3
Trzecia:
Kod
 from twoj_plik_foo import *
hobo() #Zadziała
fobo() #Zadziała
a  #Będzie mieć przypisane 3

Ostatnia metoda jest najgorsza, ponieważ możesz sobie nadpisać zmienne, które wewnątrz np. metod foo będą wykorzystywane.

Dlatego też się wykorzystuje `def main():`. Ale przy braku takich praktyk, zalecam drugi sposób lub w ostateczności pierwszy.

No i najważniejsze, przy importowaniu własnych plików używaj takiej struktury:
Kod
### Sekcja importów ###
 
def main(): # Twoja funkcja main w której wykonujesz wywołania programu, ewentualnie z jakimiś argumentami.
 
### Sekcja innych funkcji ###
 
if __name__ == "__main__":
   main() #Dzięki temu możesz mieć pewność że importując plik, nie wykonasz jego main'a.
Zwłaszcza kiedy chcesz użyć tylko kilku funkcji z danego programu. Albo wykonujesz testy czy wszystko działa, testy w funkcji main załatwią taki problem, albo nawet już pod samą sekcją if __name__ (...).
Zapisane

Python 3.5+ / Mint

Daje wędkę zamiast ryby. Chyba że ktoś się chce czegoś nauczyć, wtedy chętnie pomogę każdemu.
Za rybę niestety trzeba zapłacić Z politowaniem.
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2019 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot