পাইথনপথ পরিবেশ পরিবর্তনশীল


19

আমার মধ্যে এটি আছে ~/.profile:

export PYTHONPATH=/home/dev/python-files

ইন python-filesডিরেক্টরি, আমি Git-হাব (বোতল, curveship এবং PY-vgdl) থেকে ক্লোন করা কয়েকটি প্রকল্প আছে।

আমি যখনই এই প্রকল্পগুলির উদাহরণগুলির মধ্যে কোনওটি শুরু করার চেষ্টা করি তখন আমি নীচের মতো ত্রুটিগুলি পাই:

$ python ~/python-files/py-vgdl/examples/gridphysics/frogs.py 
Traceback (most recent call last):
    File "/home/dev/python-files/py-vgdl/examples/gridphysics/frogs.py", line 67, in <module>
        from vgdl.core import VGDLParser
ImportError: No module named vgdl.core

আমার কাছে মনে হচ্ছে আমার এই ত্রুটিটি হওয়া উচিত নয় কারণ আমার PYTHONPATHপরিবেশগত পরিবর্তনশীল সেট আপ আছে?

পাইথন ইন্টারেক্টিভ ইন্টারপ্রেটার চালাচ্ছি:

>>> import os
>>> os.environ["PYTHONPATH"]
'/home/dev/python-files'

উত্তর:


35

এটি সম্পূর্ণরূপে ওভাররাইট করার পরিবর্তে পাইথনপথে সংযুক্ত করার চেষ্টা করুন।

export PYTHONPATH=$PYTHONPATH:/home/dev/python-files

তথ্যসূত্র:

পাইথনপথের পাইথন ডকুমেন্টেশন অনুসারে

মডিউল ফাইলগুলির জন্য ডিফল্ট অনুসন্ধানের পথটি অগমেন্ট। [...]

ডিফল্ট অনুসন্ধানের পথটি ইনস্টলেশন নির্ভর, তবে সাধারণত prefix/lib/pythonversion( PYTHONHOMEউপরে দেখুন) দিয়ে শুরু হয় । এটি সর্বদা সংযুক্ত থাকে PYTHONPATH

মানে কিছু মান বিদ্যমান PYTHONPATHএবং ডিফল্ট অনুসন্ধানের পথটি কেবল সংযুক্ত থাকে।

অধিকন্তু, এই ব্লগ পোস্টটি ( আর্কাইভ.আর লিঙ্ক ) এছাড়াও আপনাকে কেন PYTHONPATHএটিতে ওভাররাইট না করে যুক্ত করতে হবে তা স্পষ্টভাবে ব্যাখ্যা করে। বিভাগে নিচে স্ক্রোলিং - বিশেষ কেসগুলি এবং অনুসন্ধানের পথটি পরীক্ষা করে এটি পরিষ্কারভাবে ব্যাখ্যা করে (দুর্ভাগ্যক্রমে সেই লিঙ্কটির কোনও আপেক্ষিক URL নেই যাতে আপনাকে স্ক্রোল করতে হবে)। যদিও ব্যবহারকারী ম্যাকের উপর উদাহরণ দেয় তারা কোনও প্ল্যাটফর্মের সাথে খুব প্রাসঙ্গিক


1
@ গ্যারেট ধন্যবাদ :) আর্কাইভ.আর লিঙ্কের সাথে আপডেট হয়েছে।
নিতিন ভেঙ্কটেশ

সংরক্ষণাগার / স্টেরিওপ্লেক্স লিঙ্কের জন্য +1। এটি এতগুলি প্রশ্নের উত্তর দেয় এটি আধিকারিক পাইথন ডক্সের প্রথম পৃষ্ঠায় হওয়া উচিত!
মালিক এ রুমী

5

আপনি নিম্নলিখিত হিসাবে করতে পারেন:

export PYTHONPATH=$(pwd) **or** export PYTHONPATH=${PWD}

pwd হ'ল বর্তমান ওয়ার্কিং ডিরেক্টরি।


সাবধান, এটি প্রক্রিয়াতে আপনার পাইথনপথটি ওভাররাইট করবে! আপনি যদি আপনার export PYTHONPATH=$PYTHONPATH:$(pwd)
পাইথনপথে পিডব্লিউড

4

PYTHONPATHআপনার পাইথন প্যাকেজগুলি এবং মডিউলগুলি কোথায় রয়েছে তা নির্দেশ করতে হবে যেখানে আপনার চেকআউটগুলি নেই। অন্য কথায়, আপনি যদি এটি করেন তবে আপনার ফাইল ( পাইথন মডিউল ) এবং ফাইল ( পাইথন প্যাকেজ ) ধারণকারী ডিরেক্টরিগুলি ls "$PYTHONPATH"দেখতে হবে ।*.py__init__.py

সুতরাং, আপনি যদি সক্ষম হতে চান তবে import vgdlআপনার PYTHONPATHদেখতে এইরকম হওয়া উচিত:

PYTHONPATH=/home/dev/python-files/py-vgdl

কারণ vgdl প্যাকেজটি ভিতরে রয়েছে py-vgdl, ভিতরে নয় python-files

অন্যান্য পাথগুলিকেও যুক্ত করতে, আপনি :সেগুলি পৃথক করতে ব্যবহার করতে পারেন :

PYTHONPATH="/home/dev/python-files/py-vgdl:/home/dev/python-files/something:$PYTHONPATH"

এটি প্রকৃতপক্ষে কাজ করবে, তবে এই জাতীয় ক্ষেত্রে ব্যবহার PYTHONPATHকরা খুব জটিল হতে পারে। আমি virtualenvযা প্রস্তাব দিচ্ছি তা হ'ল ব্যবহার করা যা আপনার মতো পরিস্থিতি সহজ করার উদ্দেশ্যে তৈরি করা হয়েছে। আপনার যা করতে হবে তা মূলত:

  1. একটি পরিবেশ তৈরি করুন: virtualenv env
  2. এটি 'সক্রিয় করুন': source env/bin/activate
  3. আপনার প্যাকেজগুলি ইনস্টল করুন: এটি আপনার প্যাকেজগুলির স্ক্রিপ্ট ব্যবহার pipকরেই করা যেতে পারে setup.py
  4. উপভোগ করুন।

আমি খুব বেশি তথ্য দিচ্ছি না কারণ ভার্চুয়ালেনভ ভালভাবে নথিভুক্ত এবং আপনার যদি কোনও কিছুর সাহায্যের প্রয়োজন হয় তবে আপনি আরও একটি নতুন প্রশ্ন খুলতে চাই।

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