পাইথনের ভিতরে "পাইপ ইনস্টল" কেন একটি সিনট্যাক্স এরিয়ার বাড়ায়?


232

আমি প্যাকেজ ইনস্টল করতে পাইপ ব্যবহার করার চেষ্টা করছি। আমি pip installপাইথন শেল থেকে চালানোর চেষ্টা করি , তবে আমি একটি পাই SyntaxError। কেন আমি এই ত্রুটি পেতে পারি? প্যাকেজ ইনস্টল করতে আমি কীভাবে পিপ ব্যবহার করব?

>>> pip install selenium
              ^
SyntaxError: invalid syntax

উত্তর:


297

পাইপ কমান্ড লাইন থেকে চালিত হয়, পাইথন ইন্টারপ্রেটার নয়। এটি এমন একটি প্রোগ্রাম যা মডিউলগুলি ইনস্টল করে , তাই আপনি এগুলি পাইথন থেকে ব্যবহার করতে পারেন। মডিউলটি ইনস্টল করার পরে আপনি পাইথন শেলটি খুলতে এবং করতে পারেন import selenium

পাইথন শেলটি কোনও কমান্ড লাইন নয়, এটি একটি ইন্টারেক্টিভ ইন্টারপ্রেটার। আপনি এতে পাইথন কোড টাইপ করুন, আদেশগুলি নয়।


2
স্পষ্টতার জন্য ধন্যবাদ, তবে আমি এখনও এটি চালাতে পারি না। এটা ঠিক কোথায়? এটি আমাকে একটি "পাইপ স্বীকৃত নয়" ত্রুটি দিচ্ছে (কারণ আমি সঠিক ডীর নই)। এটা তোলে \ সাইট-প্যাকেজ ইনস্টল করা ছিল কিন্তু আমি এটা চিন্তা করছি এবং আমি কোন pip.exe খুঁজে পাচ্ছি না
Nacht

25
@ নচট - pipআপনার অজগর ইনস্টলের স্ক্রিপ্ট ডিরেক্টরিতে থাকবে তাই আপনি এটিকে আপনার পথে যুক্ত করতে চাইবেন। C:\Python32\scriptsআপনার যোগ করুন PATH। আপনি কোথায় এটি ইনস্টল করেছেন তার ভিত্তিতে পাথটি প্রয়োজনীয় হিসাবে পরিবর্তন করুন।
wkl

3
প্রকৃতপক্ষে উইন্ডোতে পাইপ.এক্সই / স্ক্রিপ্ট ডিরেক্টরিতে অন্য হিসাবে পাইথন স্ক্রিপ্ট, তবে এটি ডিফল্ট পাইথন ইন্টারপ্রেটার দিয়ে চালাতে এক্সে মোড়ানো থাকে। 7-জিপ সহ পিপ.এক্স.ই.পি খুললে আপনি প্রধান .py আমদানি করা পাইপ, সিস এবং পুনরায় মডিউলগুলি দেখতে পাবেন ... (এবং সেখানে আপনি উত্তরটি খুঁজে পাবেন কীভাবে পাইথন শেলের মধ্যে এটি চালানো যায়) -> পিপ নিয়মিত পাইথন মডিউল ভুলে যাবেন উইন্ডোজগুলি প্রথম প্লাটফর্মটি পাইথন সমর্থন করে না, লিনাক্স ছিল এবং সেখানে পাইথন ওএসের একটি অংশ।
জিডননার

1
আমি জানি আমার জন্য কমান্ড লাইন থেকে এটি করা হয়েছিল (পাইথন কমান্ড লাইন নয়)। এটি পাইথন.এক্সির ডিরেক্টরিতে ডিরেক্টরি পরিবর্তন করার পরে পিপ 3-তে ফাইলের ধরণের প্রয়োজন। আমার ক্ষেত্রে আমি এইচটিটিপি কাজের অনুরোধের পরে ছিলাম। যথা: পাইথন পাইপ 3. এক্স ইন্সটল অনুরোধ <--- এটি পুরোপুরি কাজ করেছে, পাইটজ মডিউলটির জন্য একই পুনরাবৃত্তি
নটুর 3

106

কমান্ড লাইনটি ব্যবহার করুন, পাইথন শেলটি নয় (উইন্ডোজে ডস, পাওয়ারশেল)।

C:\Program Files\Python2.7\Scripts> pip install XYZ

আপনি যদি সর্বশেষতম ইনস্টলারগুলি ব্যবহার করে আপনার পাথের মধ্যে পাইথন ইনস্টল করেন তবে পিপ চালানোর জন্য আপনাকে সেই ফোল্ডারে থাকতে হবে না

ম্যাক বা লিনাক্সে টার্মিনাল

$ pip install XYZ

3
সি অন্তর্ভুক্ত করার জন্য ধন্যবাদ: ...., আমাকে সিডি করার দরকার যেখানে তা বুঝতে সাহায্য করেছিলাম আপনি কমান্ড লাইনটি খোলেন এবং পাইপ টাইপ করতে পারবেন না।
hammythepig

2
এফওয়াইআই আই পাইথন ইনস্টল আমি সবেমাত্র সেট করি নি PATH। আমাকে নিজেই এটি করতে হয়েছিল, ইনস্টলের পথে ইশারা করে%APPDATA%
UuDdLrLrSs

61

@ সিনোরোক যেমন প্রস্তাব করেছেন যে পাইপের মাধ্যমে প্যাকেজ ইনস্টল করার সঠিক পদ্ধতিটি পৃথক প্রক্রিয়া ব্যবহার করা হচ্ছে যেহেতু পিপ একটি থ্রেড বন্ধ করে দিতে পারে বা নতুন ইনস্টল করা প্যাকেজটি লোড করার জন্য দোভাষী পুনরায় চালু করতে পারে তাই এটি এপিআই ব্যবহারের সঠিক উপায়: subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'SomeProject'])তবে পাইথন যেহেতু পাইথন অনুমতি দেয় অভ্যন্তরীণ এপিআই অ্যাক্সেস করতে এবং আপনি জানেন যে আপনি API কী ব্যবহার করছেন আপনি অভ্যন্তরীণ এপিআই যেভাবেই ব্যবহার করতে চাইতে পারেন। যদি আপনি https://www.lfd.uci.edu/~gohlke/pythonlibs/ এর মতো বিকল্প রিসোর্সিসহ নিজস্ব জিইউআই প্যাকেজ ম্যানেজার তৈরি করে থাকেন

নিম্নোক্ত ভোটের পরিবর্তে আপডেটের প্রস্তাব দেওয়ার পরিবর্তে আত্মাহুতি অনুসরণ করা তারিখের বাইরে। রেফারেন্সের জন্য https://github.com/pypa/pip/issues/7498 দেখুন ।


আপডেট : পাইপ সংস্করণ ১০.০ এর পরিবর্তে এর পরিবর্তে ব্যবহারের অধীনে আর কোনও পদ্ধতি get_installed_distributions()বা mainপদ্ধতি নেই ।import pip import pip._internal as pip

আপডেট সিএ v.18 get_installed_distributions() সরানো হয়েছে। পরিবর্তে আপনি freezeএই যেমন জেনারেটর ব্যবহার করতে পারেন :

from pip._internal.operations.freeze import freeze

print([package for package in freeze()])

# eg output ['pip==19.0.3']


আপনি যদি পাইথন ইন্টারপ্রেটারের ভিতরে পাইপ ব্যবহার করতে চান তবে এটি ব্যবহার করে দেখুন:

import pip

package_names=['selenium', 'requests'] #packages to install
pip.main(['install'] + package_names + ['--upgrade']) 
# --upgrade to install or update existing packages

আপনার যদি প্রতিটি ইনস্টল করা প্যাকেজ আপডেট করতে হয় তবে নিম্নলিখিত ব্যবহার করুন:

import pip

for i in pip.get_installed_distributions():
    pip.main(['install', i.key, '--upgrade'])

যদি কোনও ইনস্টলেশন ব্যর্থ হয় তবে আপনি অন্য প্যাকেজগুলি ইনস্টল করা বন্ধ করতে চান, এটি একটি একক pip.main([])কলে ব্যবহার করুন:

import pip

package_names = [i.key for i in pip.get_installed_distributions()]
pip.main(['install'] + package_names + ['--upgrade'])

দ্রষ্টব্য : আপনি যখন -r/ --requirementপরামিতি সহ ফাইলের তালিকা থেকে ইনস্টল করেন তখন আপনাকে খোলার () ফাংশন প্রয়োজন হবে না।

pip.main(['install', '-r', 'filename'])

সতর্কতা : সাধারণ হিসাবে কিছু পরামিতি --helpপাইথন দোভাষীকে থামাতে পারে।

কৌতূহল: pip.exeআপনি ব্যবহার করে বাস্তবে যাইহোক পাইথন ইন্টারপ্রেটার এবং পাইপ মডিউল ব্যবহার করুন। যদি আপনি আনপ্যাক করেন pip.exeবা pip3.exeনির্বিশেষে এটি অজগর 2.x বা 3.x হয় তবে এর ভিতরে একই একক ফাইল রয়েছে __main__.py:

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

5
এটি পাইথন শেলটিতে কাজ করে, তাই আমি মনে করি এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
ফ্রান্সোইস এম।

5
এই সমস্যাটি গুগল করার সময় আমি ঠিক এটি প্রত্যাশা করছিলাম।
অ্যান্ড্রু ব্রাজা

1
দুর্দান্ত উত্তর, এবং এটি অবশ্যই এখানে অন্তর্ভুক্ত করা উচিত, তবে আমি এটি গ্রহণযোগ্য উত্তর হওয়া উচিত বলে আমি একমত নই, যেহেতু ব্যবহারকারী এখন স্পষ্টত সর্বব্যাপী বাক্য গঠনটি "পাইপ ইনস্টল" কাজ করার চেষ্টা করছিলেন was যেহেতু সিনট্যাক্সটি এই পদ্ধতির সাথে কাজ করবে না, এটি সরাসরি এই সমস্যাটিকে সমাধান করে না। যদিও এটি গৃহীত উত্তরের চেয়ে বেশি কার্যকর হতে পারে :)
ড্যান

আসলে ওপি বলতে কী বোঝায় তা ধারণা নেই, তবে এই উত্তরটি আসলেই দেরিতে উত্তর ছিল, সুতরাং এটি যদি এখানে গৃহীত হয় তবে তা গুরুত্বপূর্ণ নয়।
জাইডনার

@ জিডনার, একমত হয়েছেন - আমার প্রতিক্রিয়া ছিল ফ্রাঙ্কোয়েসের প্রতি, যিনি বলেছিলেন এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। আমি আমার যুক্তি পোস্ট করব না কেন। এটি বলেছিল, আমি এখনও মনে করি এটি একটি দুর্দান্ত পোস্ট।
ড্যান

53

পাইথন ৩.x তে পাইপ চালাতে পাইথনের পৃষ্ঠায় দেওয়া নির্দেশাবলী অনুসরণ করুন: পাইথন মডিউল ইনস্টল করা

python -m pip install SomePackage

লক্ষ্য করুন যে এটি কমান্ড লাইন থেকে চালানো হয়েছে অজগর শেল নয় (মূল প্রশ্নে সিনট্যাক্স ত্রুটির কারণ)।


1
আমি এখনও অবৈধ সিনট্যাক্স গ্রহণ করছি। আমি উইন্ডোজ 10 পিসিতে আইপিথন ব্যবহার করছি। কোন চিন্তা?
ডেটাগার্ল

এই পৃষ্ঠায় আইপিথন ইনস্টল করার জন্য নির্দেশাবলী রয়েছে: আইপথন.ড্রেডহেডসস.ওআইও / এনে / স্টেবল / ইনস্টল/ index.html $ পাইপ ইনস্টল আইপিথন ip সম্ভবত এটি অনুবাদ করে $ পাইথন-এম পিপ ইনস্টল আইপথন
ড্যান

1
এটি সিনট্যাক্স ত্রুটি সম্পর্কে কোনও উত্তর দেয় না
ওয়ান ক্রিকেটার

এটি ইতিমধ্যে অন্যান্য উত্তরগুলি দ্বারা কভার করা হয়েছিল, তবে আমি এখন এটি যুক্ত করেছি। আমার উত্তরটি কেবলমাত্র 3.x এর পরিপূরক ছিল।
ড্যান

উইন্ডোজ 10 এ আমার জন্য কাজ করেছে - আমাকে পূর্ববর্তী মন্তব্য অনুসারে
পাইপ

2

প্রথমদিকে আমিও এই একই সমস্যার মুখোমুখি হয়েছিলাম, আমি পাইথন ইনস্টল করেছি এবং যখন আমি pipকমান্ডটি চালাচ্ছি এটি আমাকে নীচের ছবিতে দেখানো মত একটি ত্রুটি ছুঁড়ে মারত।

এখানে চিত্র বর্ণনা লিখুন

নিশ্চিত করুন পাইপ পাথ পরিবেশগত পরিবর্তনশীলগুলিতে যুক্ত করা হয়েছে। আমার জন্য অজগর এবং পাইপ ইনস্টলেশন পথ হ'ল:
পাইথন: C:\Users\fhhz\AppData\Local\Programs\Python\Python38\
পাইপ: C:\Users\fhhz\AppData\Local\Programs\Python\Python38\Scripts
এই দুটি পাথই পরিবেশগত ভেরিয়েবলের পথে যুক্ত হয়েছিল।

এখন একটি নতুন সেন্টিমিডি উইন্ডো খুলুন এবং পাইপ টাইপ করুন, আপনার নীচের মত একটি স্ক্রিন দেখা উচিত।

এখানে চিত্র বর্ণনা লিখুন

এখন টাইপ করুন pip install <<package-name>>। এখানে আমি প্যাকেজ স্পাইডার ইনস্টল করছি তাই আমার কমান্ড লাইন বিবৃতিটি হবে pip install spyderএবং এখানে আমার চলমান স্ক্রিনটি যায় ..

এখানে চিত্র বর্ণনা লিখুন

এবং আমি আশা করি আমরা এটি দিয়ে শেষ করেছি !!


1
এটি প্রশ্নের উত্তর দেয় না।
sinoroc

0

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

>>>from pip.__main__ import _main as main
>>>main(#args splitted by space in list example:['install', 'requests'])

এটি pip <commands>টার্মিনালের মতো পাইপ কল করছে । কমান্ডগুলি স্পেস দিয়ে আলাদা করা হবে যেখানে আপনি সেখানে করছেন।


এটি পাইপ সংস্করণ 10.0 সম্পর্কে প্রায় পুরানো উত্তর। ImportError: cannot import name mainপাইপ
ভি

-1

প্রোগ্রামগতভাবে, নিম্নলিখিত বর্তমানে কাজ করে। আমি সমস্ত উত্তর 10.0 এবং সমস্ত পোস্ট দেখতে পাচ্ছি, কিন্তু সেগুলির কোনওটিই আমার পক্ষে সঠিক পথ নয়। নিশ্চিতভাবে Kaggle এর মধ্যে, এই apporach কাজ করে

from pip._internal import main as _main

package_names=['pandas'] #packages to install
_main(['install'] + package_names + ['--upgrade']) 

ন্যায়বিচার কেন ব্যবহার করবেন না: পাইপ থেকে .__ প্রধান__ আমদানি _মাইন?
Matthijs990

-3

নীচের কমান্ড সহ পাইপ আপগ্রেড করার চেষ্টা করুন এবং আবার চেষ্টা করুন

python -m pip install -U pip

পাইপের একটি আপডেট এটি অজগর শেলের মধ্যে কাজ করতে দেয় না
ম্যাথিজস 990
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.