• 1401/02/24

نصب همیشگی کتابخانه ها در پایتون :

سلام

وقت بخیر

راهی هست که بشه کتابخانه ای که نصب میکنیم برای همه پروژه ها قابل استفاده باشه.

مثلا هر پروژه ای که کار میکنم باید دوباره pyinstaller رو نصب کنم. میخواستم ببینم راهی وجود داره که نیازی نباشه کتابخانه رو دوباره نصب کنیم.

 

سوال دوم هم در مورد فونت استفاده شده در برنامه هست. من یک فونت خاص رو در برنامم استفاده میکنم و در سیستم خودم بدون مسئله ایجاد میشه ولی در سیستم دیگه اون فونت رو نشون نمیده و برنامه با فونت پیش فرض سیستم راه اندازی میشه.

 راهی هست که این اتفاق نیفته

lbl_minute = Label(root, background="#ca44b2", foreground='black', font=('digital-7', 250))

 

سوال سومم هم اینه که هر پروژه ای که ایجاد میکنم، دو تا فولدر ایجاد میشه، یه فولدر در Pycharmproject (که محل پیش فرض خود نرم افزاره و پوشه به اسم pythonproject ایجاد میشه که داخلش یه پوشه به اسم .idea هست و فایلهایی که ایجاد میکنم در این پوشه ایجاد میشه) و یه پوشه با اسمی که خودم براش در نظر گرفتم و در آدرسی که بهش دادم که پوشه Lib و Scripts داخلش هست.

سوالم اینه که راهی هست که همه این موارد در یک پوشه ایجاد بشه؟

 

ممنون میشم راهنمایی بفرمایید

  • 1401/02/26
  • ساعت 13:57

سلام وقت بخیر

سوال اول: این مشکل به این دلیل اتفاق میفته که موقع تعریف کردن پروژه‌ی جدید، خود نرم افزار برای شما یدونه مفسر(interpreter) جدید هم تعریف میکنه و وقتی کتابخانه ای رو نصب می‌کنید، برای مفسر این پروژه نصب میشه و برای مفسر پروژه های دیگه نصب نمیشه. برای همین وقتی یه پروژه‌ی جدید ایجاد می‌کنید مجبور می‌شوید که دوباره کتابخانه ها رو نصب کنید. راه حل این مشکل هم اینه که موقع تعریف کردن پروژه‌ی جدید، به جای ساخت یک مفسر مجازی، از همون مفسر اصلی، که همون نسخه پایتونی هست که روی سیستم نصب شده، استفاده بکنید. برای اینکار این سوال رو ببینید. در پنجمین پاسخ این سوال، من توضیح دادم که چطور به جای استفاده از مفسر مجازی ای که خود برنامه می‌سازه، از مفسر اصلی استفاده کنید. امیدوارم مشکلتون حل بشه 

سوال دوم: احتمالاً فونت مورد نظر شما روی اون سیستم نصب نبوده و سیستم به جای فونتی که می‌خواهید، از فونت پیشفرض سیستم استفاده می‌کنه. فونت رو روی این سیستم نصب کنید و تست کنید ببنید مشکل رفع میشه یا نه 

درمورد سوال سوم‌تون هم متاسفانه اطلاعی ندارم و نمیتونم کمکتون کنم


  • 1401/02/26
  • ساعت 15:51

ممنون از شما دوست عزیز

در مورد فونت بله در سیستم دیگه ای که برنامه رو امتحان میکنم اون فونت نیست. میخواستم ببینم که راهی هست که بدون اینکه سیستم جدید، فونت رو داشته باشه اون برنامه با همون فونت خونده بشه؟

 

در مورد سوال سوم هم راهش رو پیدا کردم در نسخه حدید پایچارم وقتی پروژه جدیدی ایجاد میکنیم دو تا آدرس برای ذخیره ازمون میخواد. اگه جفتشو یه آدرس یکی بدیم همه پروژه در یک پوشه ایجاد میشه


  • 1401/02/26
  • ساعت 17:42

خواهش می کنم :)

نمیدونم راهی باشه یا نه ولی توی اینترنت یه جستجویی انجام میدم، اگه راه حلی پیدا کردم، بهتون میگم.

مشکلی که توی سوال اول مطرح کرده بودید برطرف شد؟

 


  • 1401/02/26
  • ساعت 20:26

ممنونم. 

خیر درست نشد متاسفانه. طبق آموزشی که در اون پست قرار داده بودید، انجام دادم ولی نتیجه ای نداشت و پیغام زیر رو میده که برای نصب نبودن کتابخونه است.

 

pyinstaller : The term 'pyinstaller' is not recognized as the name of a cmdlet, function, script file, or operable program.

Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

At line:1 char:1

+ pyinstaller --onefile --windowed projectname.py

+ ~~~~~~~~~~~

   + CategoryInfo          : ObjectNotFound: (pyinstaller:String) [], CommandNotFoundException

   + FullyQualifiedErrorId : CommandNotFoundException

 


  • 1401/02/26
  • ساعت 20:39

موقعی که مفسر عوض میشه باید دوباره کتابخانه های مورد نیاز رو نصب کرد، حالا وقتی که طبق اون پست به جای استفاده از مفسر مجازی ای که خود نرم افزار درست می‌کنه، از مفسر اصلی استفاده کنید، باید دوباره کتابخانه ها رو نصب کنید ولی این بار با ساخت یک پروژه‌ی جدید دیگه نیاز نیست که دوباره کتابخانه ها رو نصب کنید و با انتخاب مفسر اصلی به جای مفسر مجازی، به همه‌ی اون کتابخانه هایی که نصب کرده بودید دسترسی دارید 

امیدوارم که مشکل حل بشه، اگر باز مشکلی بود بفرمایید تا راهنمایی کنم


  • 1401/02/26
  • ساعت 20:56

کارهایی رو که گفتید انجام دادم ولی متاسفانه درست نشد.

به هر حال ممنون از وقتی که گذاشتید


  • 1401/02/26
  • ساعت 22:52

خواهش می کنم. متاسفم که نتونستم کمکتون بکنم


  • 1401/02/27
  • ساعت 22:11

با سلام.

 

برای سوال اول:

 

به دلیل اینکه در هنگام ساخت پروژه جدید در PyCharm، یک VENV نیز ساخته می شود، تمامی پکیج هایی که از طریق Terminal این برنامه نصب می کنید، در واقع در همین VENV نصب می شود و به صورت Global در دسترس سایر پروژه ها قرار نمی گیرد.

 

می توانید خارج از برنامه PyCharm، یک cmd window باز کنید و با دستور pip install پکیج مورد نظر خود را نصب کنید. در این حالت پکیج نصب شده در فولدر site-packages (واقع در مسیری که پایتون نصب شده) قرار می گیرد.

 

در هنگام ایجاد پروژه جدید و برای استفاده از پکیج های موجود در این فولدر (site-package) باید تیک گزینه inherit global site-packages را بزنید.

 

 

برای حل مشکل فونت، می توانید این لینک را ببینید. به طور کلی، فونتهایی که در برنامه خود استفاده می کنید (با هر زبانی که برنامه نویسی کرده باشید) از فونتهای نصب شده در سیستم شما استفاده می کند و برای deploy کردن برنامه لازم است که این فونتها نیز همراه برنامه installer توزیع شوند تا در هر سیستمی قابل استفاده باشند.

 

در مورد سوال سوم، از چه نسخه ای از PyCharm استفاده می کنید؟ یک Capture از ساخت پروژه جدید ارسال کنید.

 


  • 1401/02/28
  • ساعت 13:38

سلام

در مورد سوال اول کاری که گفتید رو انجام دادم نه تنها نشد بلکه باعث شد که حتی نتونم به صورت قبل هم از کتابخونه ها استفاده کنم

مثلا میخوام پایچارم رو نصب کنم چنین پیغامی میده چه داخل ترمینال پایچارم و چه از طریق cmd

 

Defaulting to user installation because normal site-packages is not writeable

Requirement already satisfied: pyinstaller in c:\users\rasoul mohammadi\appdata\roaming\python\python310\site-packages (4.10)

Requirement already satisfied: pyinstaller-hooks-contrib>=2020.6 in c:\users\rasoul mohammadi\appdata\roaming\python\python310\si

te-packages (from pyinstaller) (2022.2)

Requirement already satisfied: pefile>=2017.8.1 in c:\users\rasoul mohammadi\appdata\roaming\python\python310\site-packages (from

pyinstaller) (2021.9.3)

Requirement already satisfied: setuptools in c:\program files\python310\lib\site-packages (from pyinstaller) (58.1.0)

Requirement already satisfied: pywin32-ctypes>=0.2.0 in c:\users\rasoul mohammadi\appdata\roaming\python\python310\site-packages

(from pyinstaller) (0.2.0)

Requirement already satisfied: altgraph in c:\users\rasoul mohammadi\appdata\roaming\python\python310\site-packages (from pyinsta

ller) (0.17.2)

Requirement already satisfied: future in c:\users\rasoul mohammadi\appdata\roaming\python\python310\site-packages (from pefile>=2

017.8.1->pyinstaller) (0.18.2)

 


  • 1401/02/28
  • ساعت 14:28

لطفاً بفرمایید که آیا نسخه های مختلف پایتون روی سیستم نصب شده یا خیر؟

همچنین از اضافه شدن مسیر نصب شدن پایتون به Path های سیستم مطمئن شوید.

 

به این شکل تست کنید:

python3.10 -m pip install [package_name]

و 

مثلا میخوام پایچارم رو نصب کنم چنین پیغامی میده چه داخل ترمینال پایچارم و چه از طریق cmd

متوجه نشدم که آیا در هنگام نصب خود PyCharm این پیغام ها را دریافت می کنید یا منظورتان نصب Package ها در PyCharm است؟

 

 


  • 1401/02/28
  • ساعت 16:14

خیر فقط یه نسخه روی سیستمم نصب هست که همون 3.10 هست

 

عذرخواهی میکنم به اشتباه نوشتم پایچارم

وقتی میخوام pyinstaller رو نصب کنم اون پیغام میاد

 


  • 1401/02/28
  • ساعت 16:42

این پیام: Requirement already satisfied را وقتی دریافت می کنید که پکیج قبلاً روی سیستم نصب شده باشد.

و این قسمت Defaulting to user installation because normal site-packages is not writeable را می توانید با سوییچ m- که برایتان نوشتم، برطرف کنید.

 

با دستور pip list یا pip freeze (از طریق cmd ویندوز) چک کنید که چه پکیج هایی روی سیستم نصب شده است.


  • 1401/02/28
  • ساعت 18:05

ممنون که اینقدر با حوصله جواب میدید

با سوئیچ -m انجام دادم و الان پیغامزیر رو میده

pyinstaller’ is not recognized as an internal or external command operable program or batch file

 

لیست پکیج هارو هم گرفتم و pyinstaller هم نصب هست

 


  • 1401/02/28
  • ساعت 19:45

خواهش می کنم دوست گرامی.

 

سوییچ تنها در هنگام نصب استفاده می شود.

 

پکیج به درستی نصب شده، منتها Path آن در Path های سیستم شما ثبت نشده و به همین دلیل فراخوانی و اجرای آن به این شکلی که شما نوشتید (یعنی بدون مشخص کردن مسیر کامل) امکان پذیر نیست.

ببینید در این شکل که برایتان ارسال کردم، همین پکیج را نصب کردم و در انتها، عنوان شده که پکیج در آدرس:

C:\Users\CurrentUserName\AppData\Roaming\Python\Python39\Scripts

نصب شده ولی در Path های سیستم نیست.

 

* برای حل این مساله، روی ThisPC کلیک راست و Properties و Advanced System Settings و بعد، از پنجره باز شده، tab Advanced را انتخاب کنید.

* Environment Variables را کلیک کنید.

* از قسمت بالایی پنجره جدید، یعنی User variables for CurrenUserName گزینه Path را انتخاب و دکمه Edit را بزنید.

* در پنجره جدید، دکمه New و سپس این آدرس را در آن Paste کنید:

C:\Users\CurrentUserName\AppData\Roaming\Python\Python39\Scripts

 

حالا می توانید pyinstaller را به همان ترتیبی که نوشته بودید، اجرا کنید.

 

 

البته روی این سیستم، پایتون 3.9 نصب شده که در روند کلی کار، تاثیری ندارد.


  • 1401/02/28
  • ساعت 22:10

اینکار رو هم انجام دادم ولی متاسفانه نشد

 

اگه پایتون و پایچارم رو از سیستم uninstall کنم و دوباره نصب کنم، به نظرتون درست میشه؟


  • 1401/02/29
  • ساعت 09:25

اضافه کردن این Path صرفاً برای این است که از طریق cmd راحت تر بتوانید PyInstaller را اجرا کنید و گر نه با نوشتن مسیر کامل یعنی چیزی شبیه این: 

C:\Users\CurrentUserName\AppData\Roaming\Python\Python39\Scripts\pyinstaller می توانید آنرا اجرا کنید و نیازی به Uninstall کردن Python, PyCharm نیست.


  • 1401/02/29
  • ساعت 20:11

پایتون و پایچارم رو حذف کردم و دوباره نصب کردم و مسئله برطرف شد

حیلی ممنون بابت راهنمایی و وقتی که گذاشتید


  • 1401/02/29
  • ساعت 21:40

خواهش می کنم. موفق باشید.


logo-enamadlogo-samandehi