2015-07-16 8 views
7

से पाइथन पुस्तकालयों को आयात करना मैंने अपनी परियोजना में उपयोग के लिए पाइथन में कुछ पुस्तकालयों को लिखा है। मैंने उन्हें अपने सिस्टम पर स्थानीय रूप से और गीथूब पर दूरस्थ रूप से संग्रहीत किया है। अब जब भी मैं कुछ कोड लिखता हूं, तो मैं अपने सिस्टम में निर्देशिका से अपने पुस्तकालयों को आयात करने में मदद के लिए शुरुआत में sys.path.append() का उपयोग करता हूं। Quacpyगीथब

+0

अगर वे एक 'आप' पिप स्थापित कर सकते हैं setup.py' ... 'से एक GitHub रेपो – jonrsharpe

उत्तर

1

यह दीवार से थोड़ा लगता है, लेकिन (के किसी भी करता है, तो आप के लिए काम कर सकते हैं - मैं सोच रहा था कि अगर वहाँ किसी भी तरह अपना Github रिपॉजिटरी

मेरी रेपो के लिए लिंक से सीधे इन फ़ाइलों को आयात करने के लिए यह है अपने पुस्तकालयों एक दूसरे पर निर्भर है, तो आप भी !? githubimports करने के लिए उन आयात को बदलने के लिए) होगा: यदि आप एक रेपो जो स्थापित किया जाना है उपयोग करना चाहते हैं

import requests 
def githubimport(user, repo, module): 
    d = {} 
    url = 'https://raw.githubusercontent.com/{}/{}/master/{}.py'.format(user, repo, module) 
    r = requests.get(url).text 
    exec(r, d) 
    return d 

qoperator = githubimport('biryani', 'Quacpy', 'qoperator') 
2

, मुझे यकीन है कि नहीं कर रहा हूँ कैसे तुम करोगी इंस्टॉलेशन को अन्य पायथन स्क्रिप्ट के अंदर स्वचालित करना चाहते हैं (इंस्टॉलेशन विफल होने पर भी क्या करना है)।

हालांकि, अगर आप सिर्फ एक फ़ाइल से कुछ तरीकों का उपयोग करना चाहते हैं, तो आप उस फ़ाइल को डाउनलोड कर सकते हैं और फिर इसे आयात:

import urllib2 

def download(url): 
    filename = url.split('/')[-1] 
    print 'Downloading', filename 
    f = urllib2.urlopen(url) 
    data = f.read() 
    f.close() 
    with open(filename, 'w') as myfile: 
     myfile.write(data) 

# get repository 
download('https://raw.githubusercontent.com/biryani/Quacpy/master/auxfun.py') 

# try to import something from it 
from auxfun import qregnorm 
q = qregnorm([0, 1, 2]) 
print 'Success! q =', q 

शायद तुम यहां तक ​​कि पूरी ज़िप डाउनलोड कर सकते हैं, इसे अनज़िप और फिर आयात फ़ाइलें।

+0

धन्यवाद प्रत्यक्ष! यही वह है जिसकी तलाश में मैं हूं। बाहर निकलता है यह इतना आसान नहीं है। – biryani

+0

यदि कोई उत्तर वही था जो आप खोज रहे थे, तो आपको इसे स्वीकार्य उत्तर देने पर विचार करना चाहिए ;-) – adrianus

2

मान लें कि आपके पास वैध setup.py फ़ाइल है, pip गिट-आधारित स्थापना का समर्थन करता है। देखें विवरण

के लिए https://pip.pypa.io/en/latest/reference/pip_install.html#git

बिगाड़ने:

pip install -e git+https://github.com/biryani/Quacpy.git#egg=quacpy 
Obtaining quacpy from git+https://github.com/biryani/Quacpy.git#egg=quacpy 
    Cloning https://github.com/biryani/Quacpy.git to /.../quacpy 
    Complete output from command python setup.py egg_info: 
    Traceback (most recent call last): 
     File "<string>", line 18, in <module> 
    IOError: [Errno 2] No such file or directory: '/.../quacpy/setup.py' 

    ---------------------------------------- 
    Command "python setup.py egg_info" failed with error code 1 in /.../quacpy 
+0

उत्तर के लिए धन्यवाद। लेकिन मैं मॉड्यूल को स्थापित करने की तलाश नहीं कर रहा हूं, बल्कि हर बार जब मैं कोड चलाता हूं तो इसे दूरस्थ रूप से कुछ फाइल आयात करता हूं। यद्यपि यह करने के लिए आपका तरीका समझदार तरीका है। – biryani

2

यह एक के रूप में पूरे भंडार का आयात करता है: क्योंकि तुम एक setup.py फ़ाइल नहीं है, आपको निम्न त्रुटि यदि आप वर्तमान में पिप का उपयोग करके देखें देखेंगे मॉड्यूल, अजगर 3:

import sys 
import urllib.request # python 3 
import zipfile 
import os 

REPOSITORY_ZIP_URL = 'https://github.com/biryani/Quacpy/archive/master.zip' 

filename, headers = urllib.request.urlretrieve(REPOSITORY_ZIP_URL) 

zip = zipfile.ZipFile(filename) 

directory = filename + '_dir' 

zip.extractall(directory) 

module_directory_from_zip = os.listdir(directory)[0] 
module_directory = 'Quacpy' 
os.rename(os.path.join(directory, module_directory_from_zip), 
      os.path.join(directory, module_directory)) 

sys.path.append(directory) 

import Quacpy