امروز به طرز عجیبی یهو دیدم که هیچ کدوم از پکیج ها رو pycharm نمیتونه پیدا کنه و import کردن پکیج ها قرمز شده بود . کد کار میکرد ها ولی خب پکیج ها رو نمیشناخت یه سری تو اینترنت گشتم گفتن باید روت پروژه رو به عنوان source root به pycharm معرفی کنید. مراحلش رو انجام دادم به شکل زیر:
project root -> right click -> make directory as -> mark as source root
,ولی جالب اینه که این هم درستش نکرد بازم تو اینترنت گشتم دیدم یکی گفته قانون قدیمی برنامه نویسها رو استفاده کنید البته بیشتر جوکه تا قانون (میگه اگه یه برنامه نویس ماشینش خراب بشه اعتقاد داره اگه همه پیاده شن و ماشین رو از نو روشن کنن و بشینن پشتش به احتمال زیاد مشکلش حل میشه ) خب در این مورد هم این کار رو گفته بود یارو این که از اساس بزنید پوشه .idea که کل تنظیمات pycharm توشه رو حذف کنید و از نو به عنوان یه پروژه dajngo بازش کنید و بزارید تنظیماتش رو از اول بسازه.
جالب این که این روش جواب داد و همه چی درست شد البته معرفی کردن روت پروژه رو هم محض اطمینان طبق دستور العمل اول که گفتم انجام دادم
خیلی دلم میخواست وقتی ماژولی رو میخوام سریعا ترمینال pycharm رو باز کنم و فوری با pip دانلودش کنم ولی هر بار باید مسیر محیط مجازی رو در ترمینال وارد میکردم بعد به حالت اکتو میبردم . ولی خب یه راه خلاصه داره که تو تنظیمات pycharm خودش این کار رو میکنه.
Pycharm ->File -> Settings -> Tools -> Terminal -> Shell Path
مراحل زیر:مقدار shell path رو با خط زیر پر کنید.
"cmd.exe" /k ""C:\mypath\my-venv\Scripts\activate.bat""
my_env محیط مجازی من هست که قبلا ساختنم و ماژول های مورد نیازم رو توش دارم . شما باید مسیر محیط مجازی که خودتون ساختید رو بهش بدید.
معمولا در کتابها یا راهنما ها برای فعال کردن محیط ایزوله پایتون از دستور زیر استفاده میکنند.
source my_env/bin/activate
ولی وقتی در در کامند پرامپت ویندوز میخواید همین کار رو انجام بدید باید از دستور زیر استفاده کنید.
my_env/scripts/activate.bat
یعنی چون در واقع دستور source در ویندوز وجود ندارد باید با bat فایلی که برای این کار ساخته شده است محیط ایزوله را فعال کنیم.
توضیحات بیشتر رو از داکیومنت virtualenv میتونید بخونید.
لینک همین مشکل در stackoverflow
خب این کتاب یکی از بهترین کتابها برای شروع ساده و تقریبا جامع در مورد فریم ورک جانگو هست. این کتاب کاملا عملی همراه چند تا پروژه (وبلاگ، فروشگاه ، شبکه اجتماعی و ..) خیلی از بخش هایی که هر کسی برای راه اندازی یه سایت درست حسابی باهاش برخورد میکنه رو توضیح میده مثلا نحوه مدیریت کردن عکس در سایت، استفاده از ایمیل خودکار برای مشتری، ساختن یه سرچ انجین حرفه ای برای سایت ، راه اندازی ربیت انکیو برای تضمین انجام یه سری تسک ها که در هیچ صورتی نباید ناموفق بشن مثلا ایمیل فاکتور مشتری یا .. ، استفاده از وب سرویس و ایجاد امنیت برای سایت و کاربرها . خلاصه من خیلی چیزهای ازش یاد گرفتم و واقعا تو پروژه تستی خودم کارایی داشت. امیدوارم برای شما هم مفید باشه.
import codecs
import os
import sys
output_str = "تست خروجی فارسی"
if sys.stdout.encoding == 'UTF-8':
print(output_str)
else:
output_str += os.linesep
if sys.version_info[0] >= 3:
sys.stdout.buffer.write(bytes(output_str.encode('utf-8')))
else:
codecs.getwriter('utf-8')(sys.stdout).write(output_str)