পাইপ সফলভাবে প্যাকেজ ইনস্টল করে, তবে কমান্ড লাইন থেকে এক্সিকিউটেবল পাওয়া যায় না


122

আমি ম্যাক ওএস এক্স ইয়োসেমাইট, সংস্করণ 10.10.3 এ কাজ করছি।

আমি http://johnlaudun.org/20150512-installing-and-setting-pip-with-macport// তে ম্যাকপোর্ট ব্যবহার করে পাইথন 2.7 এবং পাইপ ইনস্টল করেছি /

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

কেউ কি জানেন কী ভুল হতে পারে? (নীচে আরও বিশদ)

উদাহরণস্বরূপ http://wiki.ros.org/jade/Installation/Source এ নির্দেশিত "rosdep" নামে একটি প্যাকেজ ইনস্টল করার সময়

আমি চালাতে পারি: sudo pip install -U rosdep যা ত্রুটি ছাড়াই ইনস্টল করে এবং সংশ্লিষ্ট ফাইলগুলি অবস্থিত/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

তবে যদি আমি চালানোর চেষ্টা করি:, sudo rosdep initএটি একটি ত্রুটি দেয়:"sudo: rosdep: command not found"

এটি কোনও প্যাকেজ নির্দিষ্ট ত্রুটি নয়। আমি আমার কম্পিউটারে পাইপ ব্যবহার করে ইনস্টল করা কোনও প্যাকেজের জন্য এটি পেয়েছি। এমনকি আমি যোগ করার চেষ্টা করেছি

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

আমার $PATH। অজগর থেকে প্যাকেজগুলি পুরোপুরি কাজ করলেও কমান্ড লাইনে এক্সিকিউটেবলগুলি পাওয়া যায় না।


জড়িত কোন ভার্চুয়ালেনভ?
জেএল পেয়ারেট

না, কোনও ভার্চুয়ালেনভ জড়িত নয়।
সংকেত_ডাইওয়ালে

আপনি যখন sudo করবেন, আপনি রুট ব্যবহারকারীর $ PATH এ স্যুইচ করবেন, কেবল নিশ্চিত করুন যে তাঁর পথ আপডেট হয়েছে, আপনার PATH নয়
অ্যান্থনি পেরোট

উত্তর:


53

আপনার AT पथ পরীক্ষা করুন

tox একটি কমান্ড লাইন মোড আছে:

audrey:tests jluc$ pip list | grep tox
tox (2.3.1)

এটা কোথায়?

(সম্পাদনা করুন: 2.7স্টাফ এখানে খুব বেশি গুরুত্ব দেয় না, কোনওটিতে সাব 3.xএবং পাইপের একইভাবে একই আচরণ করা হয়)

audrey:tests jluc$ which tox
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/tox

আর আমার AT পথের মধ্যে কী আছে?

audrey:tests jluc$ echo $PATH
/opt/chefdk/bin:/opt/chefdk/embedded/bin:/opt/local/bin:..../opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin...

/ কপট / লোকাল / লাইব্রেরি / ফ্রেমওয়ার্কস / পাইথন.ফ্রেমওয়ার্ক / ভার্সন / ২..7/বিনের দিকে লক্ষ্য করুন ? এটিই আমার পাইপ-ইনস্টল করা স্টাফগুলি সন্ধান করতে দেয়

পাইথন থেকে জিনিসগুলি কোথায় তা এখন দেখার জন্য এটি করার চেষ্টা করুন (বিকল্প rosdepহিসাবে tox)।

$python
>>> import tox
>>> tox.__file__

এটি মুদ্রণ করে:

'/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tox/__init__.pyc'

এখন উপরের ঠিক উপরে ডিরেক্টরিতে সিডি করুনlib । আপনি একটি বিন ডিরেক্টরি দেখতে পাচ্ছেন ? আপনি কি rosdepএই বিন মধ্যে দেখতে পাচ্ছেন ? যদি তাই binহয় তবে আপনার AT PATH এ যুক্ত করার চেষ্টা করুন ।

audrey:2.7 jluc$ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.7
audrey:2.7 jluc$ ls -1

আউটপুট:

Headers
Python
Resources
bin
include
lib
man
share

উত্তরের জন্য জেএল ধন্যবাদ, তবে এটি মূলত আমার সমস্যা। আমার উদাহরণ অ্যাপ্লিকেশন রোডডেপের জন্য, যখন আমি আপনার মতো করে করি, এখানে আউটপুট পাওয়া যায়: পাইপ তালিকা | গ্রেপ রসডেপ রসডেপ (0.11.4) যা রসডেপ (কোনও আউটপুট নয়), কমান্ড লাইন কোনও কিছুই
ফেরায়

4
যা না ফেরানো rosdepআপনার সমস্যার সাথে সামঞ্জস্যপূর্ণ। আমার বক্তব্যটি হ'ল আপনাকে কোথায় rosdepইনস্টল করা আছে এবং কী $ PATH দেখতে ভাল লাগে তা খুঁজে বের করতে হবে ।
জেএল পেয়ারেট

ধন্যবাদ, আমার বাইনারিগুলি /opt/local/Library/Frameworks/Python.framework/ ভার্সন / 2.7/bin এ ইনস্টল করা ছিল। এটি পাঠে যোগ করা হয়েছে এবং এখন এটির কাজ চলছে। ধন্যবাদ, বাইনারিগুলি সনাক্ত করতে আমার সমস্যা হয়েছে যেহেতু কোনও আউটপুট সরবরাহ করা হচ্ছে না।
সংকেত_ডাইওয়ালে

PATH = / opt / স্থানীয় / গ্রন্থাগার / ফ্রেমওয়ার্কস / পাইথন.ফ্রেমওয়ার্ক / সংস্করণগুলি / 2.7 / বিন রফতানি করুন: $ পথ আমার পথে অনুপস্থিত ছিল এবং OSX- এ আমার জন্য কৌতুক করেছিল
Cio Iglesias

4
আপনি যদি প্রোগ্রামটি which(যদি এটি এখনও আপনার পথে না থাকে) সাথে খুঁজে না পান তবে আপনি mlocateলিনাক্স বা mdfindম্যাকোস ব্যবহার করে বাইনারিটি সন্ধান করার চেষ্টা করতে পারেন ।
জ্যাককোগডিল

57

ডিফল্ট অজগর ইনস্টলেশন সহ ম্যাকোসে /Users/<you>/Library/Python/2.7/bin/আপনাকে আপনার AT PATH এ যুক্ত করতে হবে।

এটি আপনার .bash_ প্রোফাইলে যুক্ত করুন:

export PATH="/Users/<you>/Library/Python/2.7/bin:$PATH"

পাইপ এক্সিকিউটেবলগুলি ইনস্টল করে।

টিপ: অজৈব অজগর সংস্করণের which pythonজন্য আপনার পাইথন ইনস্টলেশনটির অবস্থান সন্ধান করুন এবং সেই অংশটি উপরের পথে প্রতিস্থাপন করুন। (ইঙ্গিত সংকেত_ডাইওয়ালের জন্য ধন্যবাদ)


8
পাইপ ইনস্টল করার জায়গার উপর নির্ভর করে আপনি কীভাবে পাইথন ইনস্টল করেছেন, ম্যাকওএসের অজগর ইনস্টল করার একাধিক উপায় রয়েছে যেমন ম্যাকপোর্টস, হোমব্রিউ এবং সিস্টেম ডিফল্ট। পাইথনের কোন সংস্করণ ব্যবহৃত হচ্ছে তার উপর নির্ভর করে আপনার পিপের জন্য আলাদা আলাদা অবস্থান থাকবে। পাইপ এবং অজগরটি কোথায় রয়েছে তা নির্ধারণের একটি সহজ উপায় হ'ল টার্মিনালে "যা পাইথন" ব্যবহার করা হবে এবং তারপরে উপযুক্ত অবস্থানটি $ PATH যুক্ত করা হবে।
সংকেত_ডাইওয়ালে

4
ম্যাকোস 10.14.3 এর জন্য পাইথন.অর্গ থেকে পাইথন 3.6 ইনস্টল করে which python3আমাকে শেষ পর্যন্ত (একটি লিঙ্কের মাধ্যমে) নেতৃত্ব দিয়েছিল /Library/Frameworks/Python.framework/Versions/3.6/bin/
ফিনিক্স

43

যদি আপনি --user(উদাহরণস্বরূপ pip3.6 install --user tmuxp) ব্যবহার করে ইনস্টল করেন তবে siteমডিউলটি ব্যবহার করে পাইথন থেকে প্ল্যাটফর্ম-নির্দিষ্ট ব্যবহারকারী ইনস্টল ডিরেক্টরি পাওয়া সম্ভব । উদাহরণস্বরূপ, ম্যাকোজে:

$ python2.7 -m site --user-base
/Users/alexp/Library/Python/2.7

এটি সংযোজন /binকরার মাধ্যমে, আমাদের এখন সেই পথ রয়েছে যেখানে প্যাকেজ এক্সিকিউটেবলগুলি ইনস্টল করা হবে। আউটপুটের উপর ভিত্তি করে আমরা আপনার শেলের আরসি ফাইলে গতিশীলভাবে PATH পপুলেট করতে পারি; আমি ব্যাশ ব্যবহার করছি, তবে ভাগ্যের সাথে এটি বহনযোগ্য:

# Add Python bin directories to path
python3.6 -m site &> /dev/null && PATH="$PATH:`python3.6 -m site --user-base`/bin"
python2.7 -m site &> /dev/null && PATH="$PATH:`python2.7 -m site --user-base`/bin"

পাইথন একটি ছোটখাটো সংস্করণ যেমন, 3.5 থেকে 3.6 পর্যন্ত আপগ্রেড করে তখন এক্সিকিউটেবলের সুযোগটি কেবল "অদৃশ্য" হ্রাস করার জন্য আমি পাইথনের সুনির্দিষ্ট সংস্করণগুলি ব্যবহার করি। এগুলি অদৃশ্য হয়ে যাবে কারণ উপরে যেমন দেখা যায় যে ব্যবহারকারী ইনস্টলেশন পথে পাইথন সংস্করণ অন্তর্ভুক্ত থাকতে পারে। সুতরাং যখন python33.5 বা 3.6 পয়েন্ট করতে পারে, python3.6সর্বদা 3.6 এ নির্দেশ করবে। আরও প্যাকেজ ইনস্টল করার সময় এটি মাথায় রাখা দরকার, উদাহরণস্বরূপpip3.6 উপরpip3

আপনার যদি প্যাকেজগুলি অদৃশ্য হওয়ার ধারণাটি মনে না করে তবে আপনি এটির পরিবর্তে python2এবং ব্যবহার করতে পারেন python3:

# Add Python bin directories to path
# Note: When Python is upgraded, packages may need to be re-installed
#       or Python versions managed.
python3 -m site &> /dev/null && PATH="$PATH:`python3 -m site --user-base`/bin"
python2 -m site &> /dev/null && PATH="$PATH:`python2 -m site --user-base`/bin"

29

আমি জানি যে প্রশ্নটি ম্যাকোস সম্পর্কে জিজ্ঞাসা করে তবে লিনাক্সের জন্য এখানে একটি সমাধান রয়েছে ব্যবহারকারীরা এখানে গুগলের মাধ্যমে ।

আমি পিডিএফএক্স ইনস্টল করে, এই প্রশ্নটিতে বর্ণিত সমস্যাটি ছিল প্যাকেজটি পিপের মাধ্যমে ।

আমি যখন এটি চালিয়েছি, কিছুই নেই ...

pip list | grep pdfx
pdfx (1.3.0)

এখনো:

which pdfx
pdfx not found

লিনাক্সে সমস্যা হ'ল pip install ...স্ক্রিপ্টগুলি এতে dropsুকিয়ে দেয় ~/.local/binএবং এটি ডিফল্ট ডেবিয়ান / উবুন্টুতে নেই $PATH

এখানে আরও একটি গীটহাব ইস্যু বিশদে যাচ্ছেন: https://github.com/pypa/pip/issues/3813

ঠিক করতে, কেবল আপনারটিতে যুক্ত ~/.local/binকরুন $PATH, উদাহরণস্বরূপ আপনার .bashrcফাইলে নিম্নলিখিত লাইনটি যুক্ত করে :

export PATH="$HOME/.local/bin:$PATH"

এর পরে, আপনার শেলটি পুনরায় চালু করুন এবং জিনিসগুলি প্রত্যাশা অনুযায়ী কাজ করা উচিত।


4
আপনার শেলটি পুনরায় চালু করার পরিবর্তে, আপনি কনফিগারেশনটি source ~/.bashrcপুনরায় লোড করতে পারেন.bashrc
হাইটেক্লাউস

4
দুর্দান্ত আমি "টক্স কমান্ড পাওয়া যায় নি" পেয়ে যাচ্ছিলাম। PATH আপডেট করার পরে এটি কাজ করে
গ্যাব্রিয়েলবিবি

10

সমাধান

অন্যান্য উত্তরের উপর ভিত্তি করে, linuxএবং macআপনি নিম্নলিখিতটি চালাতে পারেন:

echo "export PATH=\"`python3 -m site --user-base`/bin:$PATH\"" >> ~/.bashrc
source ~/.bashrc

পরিবর্তে python3আপনি পাইথন সংস্করণে অন্য কোন লিঙ্ক ব্যবহার করতে পারেন: python, python2.7, python3.6,python3.9 , ইত্যাদি

ব্যাখ্যা

বর্তমান ওএসে (উইন, ম্যাক, লিনাক্স) ব্যবহারকারী প্যাকেজগুলি কোথায় ইনস্টল করা হয়েছে তা জানতে,

python3 -m site --user-base

আমরা জানি যে স্ক্রিপ্টগুলি এতে যায় bin/ ফোল্ডারে যায় যেখানে প্যাকেজ ইনস্টল করা হয়।

সুতরাং আমরা পথগুলি একত্রিত করি:

echo `python3 -m site --user-base`/bin

তারপরে আমরা এটিকে পরিবেশের পরিবর্তনশীলে রফতানি করি।

export PATH=\"`python3 -m site --user-base`/bin:$PATH\"

শেষ অবধি, রফতানি কমান্ডটির পুনরাবৃত্তি এড়াতে আমরা এটিকে আমাদের .bashrcফাইলে যুক্ত করি এবং আমরা sourceনতুন পরিবর্তনগুলি চালানোর জন্য দৌড়ে যাই , যা শুরুতে উল্লিখিত প্রস্তাবিত সমাধানটি দিয়ে যায়।


@ বেঞ্জামিন্টস একটি ব্যাখ্যা যুক্ত করেছেন, আশা করি এটি সাহায্য করবে, সৌভাগ্য!
উইলমোস

শেষ কমান্ডে অনেক কিছুই আছে। এটি সম্পাদনা করার চেষ্টা করা হয়েছে, তবে এটি সংরক্ষণ করতে আমাকে কমপক্ষে 6 টি চরিত্র পরিবর্তন করতে হবে।
বেনরো

সম্পন্ন, আমি এটিকে সরিয়েছি, ধন্যবাদ
উইলমোস

4

আমি এই প্রশ্নে হোঁচট খেয়েছি কারণ আমি একটি পাইপিআই প্যাকেজ তৈরি করেছি, সফলভাবে তৈরি করেছি এবং প্রকাশ করেছি, তবে এটি ইনস্টলেশন পরে এটি কার্যকর করতে পারিনি। $PATHপরিবর্তনশীল সঠিকভাবে সেট করা হয়।

আমার ক্ষেত্রে সমস্যা হল আমি সেট না ছিল entry_pointsetup.pyফাইল:

entry_points = {'console_scripts':

['YOUR_CONSOLE_COMMAND=MODULE_NAME.FILE_NAME:FUNCTION_NAME'],},

3

উইন্ডোজে, আপনাকে %USERPROFILE%\AppData\Roaming\Python\Scriptsআপনার পথের পথটি যুক্ত করতে হবে।


2

অজগরটির binডিরেক্টরিটি $PATHভেরিয়েবলে যুক্ত করার পাশাপাশি , আমাকে কাজটি চালানোর জন্য সেই ডিরেক্টরিটির মালিকও পরিবর্তন করতে হয়েছিল। আমি কেন আগে থেকেই মালিক ছিলাম তা জানিনা।

chown -R ~/Library/Python/

1

আপনি যখন ম্যাকওএস ইনস্টলার (পাইথন ওয়েবসাইট থেকে ডাউনলোড) ব্যবহার করে পাইথন বা পাইথন 3 ইনস্টল করেন - এটি exportআপনার ~/.profileস্ক্রিপ্টে একটি ত্রুটি যুক্ত করে । আপনার যা করতে হবে তা কেবল sourceএটি। সমস্ত টার্মিনাল পুনরায় চালু করার জন্যও কৌশলটি করা উচিত।

সতর্কতা - আমি বিশ্বাস করি ভবিষ্যতের সুবিধার জন্য পাইথন 3 দিয়ে পাইপ 3 ব্যবহার করা আরও ভাল।

আপনি যদি ইতিমধ্যে পাইথন 3 ইনস্টল করেন তবে নিম্নলিখিত পদক্ষেপগুলি ম্যাকোস মোজাভেতে আমার জন্য কাজ করে:

  1. প্রথমে জবাবদিহি ইনস্টল করুন sudo-sudo -H pip3 install ansible

  2. আপনি পাইথনের binপথে একটি সিমিলিংক তৈরি করেন

sudo ln -s /Library/Frameworks/Python.framework/Versions/Current/bin /Library/Frameworks/Python.framework/current_python_bin

এবং এটি প্রধান .profile

export PATH=$PATH:/Library/Frameworks/Python.framework/current_python_bin

  1. source ~/.profileসমস্ত টার্মিনাল শেল চালান এবং পুনরায় চালু করুন।

  2. প্রকার ansible --version


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