প্রয়োজনীয়তা.টিএসটি পাইথন সংস্করণের উপর নির্ভর করে


91

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

if sys.version_info[0] == 2:
    requirements += py2_requirements
else:
    requirements += py3_requirements

তবে আমি প্রয়োজনীয়তাগুলি চাই: টেক্সটটিও সঠিক তালিকাটি প্রতিবিম্বিত করতে। পাইপ ডকুমেন্টেশনে এটিতে আমি কিছুই খুঁজে পাচ্ছি না। সুতরাং কেউ কীভাবে এটি করতে জানেন, বা এটি এমনকি যদি সম্ভব হয়?


4
দয়া করে স্ট্যাকওভারফ্লো.com / a / 33451105 / 99834- এ স্বীকৃত প্রতিক্রিয়া পরিবর্তন করুন - এটি নিঃসন্দেহে এটি বাস্তবায়নের সঠিক উপায়।
সোর্ইন

উত্তর:


139

আপনি ব্যবহার করতে পারেন পরিবেশ চিহ্নিতকারী এই অর্জনের জন্য requirements.txtযেহেতু pip 6.0:

SomeProject==5.4; python_version < '2.7'
SomeProject; sys_platform == 'win32'

এটি অতিরিক্ত প্রয়োজনীয়তা ঘোষণার মাধ্যমে সেটআপটুলগুলি দ্বারা সমর্থিত setup.py:

setup(
    ...
    install_requires=[
        'six',
        'humanize',
    ],
    extras_require={
        ':python_version == "2.7"': [
            'ipaddress',
        ],
    },
)

আরও দেখুন প্রয়োজন নির্দিষ্টকরী । এবং পাইথন কমান্ডগুলির সাথে সম্পর্কিত স্ট্রিং সংস্করণগুলির জন্য স্ট্রিংস


সুন্দর! আমি কীভাবে একই কাজ করতে পারি sys.platform == "win32"? আমি চেষ্টা করার চেষ্টা করেছি :sys.platform == "win32", তবে আমি setup()ফাংশন থেকে একটি "অবৈধ পরিবেশ চিহ্নিতকারী" ত্রুটি পেয়েছি
আন্দ্রে কারন

4
আপডেট: পিইপি 496 - পরিবেশ চিহ্নিতকারীগুলিকে পিইপি 508 - পিথন সফ্টওয়্যার প্যাকেজগুলির জন্য নির্ভরতা নির্দিষ্টকরণ দ্বারা বরাদ্দ দেওয়া হয়েছে , যা পরিবেশ চিহ্নিতকারীদের সিনট্যাক্স সহ নির্ভরতা ঘোষণা সিনট্যাক্সকে পুরোপুরি নির্দিষ্ট করে ।
জে.কেদেব

11

আপনি একাধিক প্রয়োজনীয় ফাইল তৈরি করতে পারেন, সেই সাধারণ প্যাকেজগুলিকে একটি সাধারণ ফাইলে রাখতে পারেন এবং এগুলি দিয়ে অন্য পিপ প্রয়োজনীয় ফাইলগুলিতে অন্তর্ভুক্ত করতে পারেন -r file_path

requirements/
  base.txt
  python2.txt
  python3.txt

অজগর 2.txt:

-r base.txt
Django==1.4 #python2 only packages

অজগর 3.txt:

-r base.txt
Django==1.5 #python3 only packages

পাইপ ইনস্টল -r প্রয়োজনীয়তা / পাইথন 2.txt

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