কনফিগার করা যাতে পাইপ ইনস্টল গিথুব থেকে কাজ করতে পারে


226

আমরা আমাদের প্রোডাকশন সার্ভারগুলিতে ব্যক্তিগত প্যাকেজ ইনস্টল করতে গিথুব সহ ​​পাইপ ব্যবহার করতে চাই। ইনস্টলটি সফল হওয়ার জন্য এই প্রশ্নটি গিথুব রেপোতে কী হওয়া দরকার তা উদ্বেগ দেয়।

নিম্নলিখিত কমান্ড লাইন ধরে নিচ্ছেন (যা কেবল সূক্ষ্ম প্রমাণ করে এবং ইনস্টল করার চেষ্টা করে):

pip install git+ssh://git@github.com/BlahCo/search/tree/prod_release_branch/ProductName

প্রোডাক্ট নেমে থাকার কী দরকার? এটি কি sdist বিকল্পের সাথে setup.py চালানোর পরে টার ফাইলে সাধারণত যা থাকে তার বিষয়বস্তু বা আসল tar.gz ফাইল, বা অন্য কিছু?

আমি এখানে জিজ্ঞাসা করছি কারণ আমি বিভিন্ন প্রকারের চেষ্টা করেছি এবং এটি কার্যকর করতে পারি না। কোন সাহায্য প্রশংসা।

উত্তর:


290

setup.pyএটিতে একটি ফাইল সহ পুরো অজগর প্যাকেজটি আপনার দরকার ।

নামের একটি প্যাকেজটি হ'ল foo:

foo # the installable package
├── foo
   ├── __init__.py
   └── bar.py
└── setup.py

এবং গিথুব থেকে ইনস্টল করুন:

$ pip install git+https://github.com/myuser/foo.git@v123
or
$ pip install git+https://github.com/myuser/foo.git@newbranch

Https://pip.pypa.io/en/stable/references/pip_install/#vcs-support এ আরও তথ্য


3
উপরের কাজগুলি, আপনাকে অনেক ধন্যবাদ। তবে যদি আমার কোনও রেপোতে একটি সাবডিরের রিলিজ হয়, তবে foo.git এর চেয়ে আমি foo / রিলিজ / প্রোডাক্টভাইয়ার খুঁজছি। এটা কি সম্ভব এবং যদি হয় কিভাবে? সাহায্যের জন্য অনেক ধন্যবাদ!
সিসিগিললেট

4
না, এটা সম্ভব নয়। কমপক্ষে গিটের জন্য পাইপ কেবলমাত্র মূল সংগ্রহস্থল ডিরেক্টরি থেকে ইনস্টল করা হয়। কীভাবে উপদ্রব আচরণ করে তা জানেন না ...
হুগো টাভারেস

3
আপনি যদি এসএসএস এবং ব্যক্তিগত রেপোগুলির ওপরে এটি করতে চান তবে এটি কীভাবে করা যায় তার একটি পোস্ট
জোনাথন

কেন আপনি -eপাইপ বিকল্প (সম্পাদনযোগ্য মোড) পাস করেন নি ?
আমেলিও ভাজকেজ-রেইনা

14
এখানে নতুন ইউআরএল স্কিমটি রয়েছে: pip install git+https://github.com/pypa/pip.git উত্স:
পাইপ গিথুব

111

আমার যখন গিথুব রেপো থেকে ইনস্টল করতে হয়েছিল তখন আমার একই সমস্যা ছিল, তবে গিট ইত্যাদি ইনস্টল করতে চাইনি

এটি করার সহজ উপায় হ'ল প্যাকেজের জিপ সংরক্ষণাগার ব্যবহার। যোগ /zipball/masterরেপো URL- এ:

    $ pip install https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master
Downloading/unpacking https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master
  Downloading master
  Running setup.py egg_info for package from https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master
Installing collected packages: django-debug-toolbar-mongo
  Running setup.py install for django-debug-toolbar-mongo
Successfully installed django-debug-toolbar-mongo
Cleaning up...

আপনি গিথুব উত্স সংগ্রহস্থলের সাহায্যে পাইপটি তৈরি করবেন।


2
এটিই একমাত্র উত্তর যা উইন্ডোজের অধীনেও কাজ করে
ডিভেনেক্স

এটি কীভাবে ব্যক্তিগত সংগ্রহস্থলগুলির সাহায্যে করা যায়? (যেমন প্রশ্ন জিজ্ঞাসা করা হয়)
রদ্রিগো ই। প্রিন্সিপ

29

আপনি যদি requirements.txtফাইলটি ব্যবহার করতে চান তবে আপনার প্রয়োজন হবে gitএবং বেনামে নিজের মাস্টার শাখাটি আনতে নীচের প্রবেশের মতো কিছু দরকার requirements.txt

নিয়মিত ইনস্টলের জন্য:

git+git://github.com/celery/django-celery.git

" সম্পাদনযোগ্য " ইনস্টলের জন্য:

-e git://github.com/celery/django-celery.git#egg=django-celery

সম্পাদনাযোগ্য মোড ./srcবর্তমান ডিরেক্টরিতে প্রকল্পের উত্স কোডটি ডাউনলোড করে । এটি pip freezeপ্যাকেজের সঠিক গিথুব অবস্থান আউটপুট করতে দেয় ।


3
সেই ডিমের নাম কোথা থেকে এসেছে? গিথুব রেপোর সাথে পিপ প্যাকেজ প্রতিস্থাপনের পরে এটি জ্যাঙ্গোতে প্যাকেজ লোড করতে ব্যর্থ হয়
হোলস

@ হোলস লুকআপের নাম সেটআপ.পিতে
wieczorek1990

কি #egg=django-celery? এটা কি স্থানধারক?
এনচ্যান্স করুন

@ একচেঞ্জ এটি প্যাকেজের নাম।
wieczorek1990

13

আপনি অন্য কোনও প্রকল্পের ক্লোনিংয়ের মতো ক্লোন টার্গেটের সংগ্রহস্থল:

git clone git@github.com:myuser/foo.git

তারপরে এটি বিকাশ মোডে ইনস্টল করুন:

cd foo
pip install -e .

আপনি যা চান না এমন কিছু আপনি পরিবর্তন করতে পারেন এবং fooপ্যাকেজ ব্যবহার করে প্রতিটি কোড সংশোধিত কোড ব্যবহার করবে।

এই সমাধানে 2 টি সুবিধা রয়েছে:

  1. আপনি আপনার হোম প্রকল্পের ডিরেক্টরিতে প্যাকেজ ইনস্টল করতে পারেন।
  2. প্যাকেজটিতে .gitডির রয়েছে , তাই এটি নিয়মিত গিট সংগ্রহস্থল os আপনি আপনার কাঁটাচামচ এখুনি ধাক্কা দিতে পারেন।

2
আমি সাক্ষ্য দিতে পারি যে এই সমাধানটি যাদুকর। আমার ক্ষেত্রে, আমি হ্যাক করতে চেয়েছিলাম pip, তাই আমি pipসংগ্রহস্থলটিকে ক্লোন করেছি , একটি ভার্চুয়ালেনভ তৈরি করেছি, এটি সক্রিয় করেছি এবং করেছি pip install -e .। তারপরে pipভার্চুয়ালেনভের উন্নয়নের মোডে ছিল! আমি মুগ্ধ হয়েছি যে এটি প্যাকেজ ম্যানেজার নিজেই কাজ করে।
রেডন রোসবারো

এটা অসাধারণ! আমি লক্ষ্য করেছি যে আমি যখন এই পদ্ধতিটি ব্যবহার করে ইনস্টল করেছি এবং তারপরে চালনা করব pip list, তখন প্রশ্নে থাকা প্যাকেজে গিট শাখা এবং এটি থেকে ইনস্টল হওয়া পরম পথের উল্লেখ রয়েছে। এটি কি তাদের কোনও রেফারেন্স রাখে বা উত্সটি মোছা যাবে?
ম্যাডফিসিসিস্ট

0

আপনি কুলাব এ চেষ্টা করতে পারেন

!git clone https://github.com/UKPLab/sentence-transformers.git
!pip install -e /content/sentence-transformers
import sentence_transformers
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.