سوالات عمومی مرتبط با پایتون
با سلام و درود،
برای اینکه از **kwargs به عنوان فیلتر های کوئری ست داخل جنگو استفاده کنید کد نویسی مشابه زیر خواهد بود (فیلتر روی کوئری ست در جنگو):
allowed_filters = ('x', 'y') kwargs = {} for key, value in request.data.items(): if key in allowed_filters: kwargs.update({key: value}) try: access_level_request_objs = AccessLevelRequest.objects.filter(**kwargs) except IndexError: pass
در نمونه کد بالا رابطه بین فیلتر ها AND می باشد اگر بخواهیم رابطه بین آنها OR باشد باید از Q و _connector استفاده کنیم، به نمونه کد زیر توجه کنید:
Q(**filter_kwargs, _connector=Q.OR)
دیدگاهتان را بنویسید
زمان مطالعه: < 1 دقیقهحل ارور Related Field has invalid lookup: icontains
با سلام، تو این مطلب به حل ارور Related Field has invalid lookup: icontains در پایتون پرداخته شده، چی میشه که چنین اروری داریم؟؟
داستان از اینجا شروع میشه که شما داخل search_fields های admin.py از پروژه تون روی یه کلید خارجی امکان جستجو رو گذاشتید، برای مثال من یه مدل دارم که کلید خارجی داره به مدل کشور ها، داخل search_fields فقط عنوان فیلد کلید خارجی رو گذاشتم که این ارور رو میده، باید پس از فیلد کلید خارجی، با دو تا _ نام فیلد اون جدولی که کلید خارجی روش دارم رو نیز مشخص کنم.
باید خط زیر را:
search_fields = ['foreignkeyfield']
به خط زیر تغییر دهید (همراه با دو تا under score) :
search_fields = ['foreignkeyfield__name']
دیدگاهتان را بنویسید
با سلام و درود، به هنگام نصب requirementها داخل یک virtual environment احتمال داره به ارور زیر بر بخورید:
ERROR: Could not find a version that satisfies the requirement apturl ERROR: No matching distribution found for apturl
خب داره میگه نمیتونه ورژن مورد نظر از apturl رو پیدا کنه تا بخواد نصبش کنه، حق هم داره، چون که پکیج های apturl و apparmor
پکیچ های اوبونتویی هستند و باید از requirement اونها رو پاک کنید و از طریق دستور زیر نصب کنید:
apt install -y apparmor apturl && pip install -r requirements.txt
احتمالا اشتباها system site packages را freeze کرده بودید که به اشتباه داخل فایل requirement اضافه شده بودند.
دیدگاهتان را بنویسید
زمان مطالعه: < 1 دقیقهحل ارور Invalid data. Expected a dictionary, but got int.
خب مشکل کجاست؟ شما یه سریالایزر دارید، که مدل استفاده شده داخل سریالایزر شما یه کلید خارجی داره، بهنگام آپدیت کردن احتمالا به این مشکل برخوردید،
قدم اول احتمالا سریالایزر رو به صورت nested ساخته اید و در نتیجه بهنگام آپدیت کردن، فقط id اون کلید خارجی رو قبول نمیکنه و انتظار یه nested dictionary داره، راه حل خیلی ساده است، فقط کافیست یه سریالایزر جدید بسازید و serializers ها رو به دو دسته read و write تبدیل کنید تا به این مشکلات برنخورید.
به مثال زیر توجه کنید:
class HuntingDetailViewSerializer(serializers.ModelSerializer): species = HuntingSpeciesSerializer(many=True, read_only=True) technique = HuntingTechniqueTagSerializer() class Meta: model = HuntListing exclude = ('owner',)
شما سریالایزر بالا را دارید، داخل view نیز کد زیر را دارید:
listing_id = request.data.get('listing_id') listing = HuntListing.objects.get(id=listing_id) serializer = HuntingDetailViewSerializer(listing, data=request.data, partial=True) if serializer.is_valid(): serializer.save()
داده نمونه تون هم به صورت زیر هست :
{"listing_id":9, "technique":1, ....}
ولی ارور دارید به صورت زیر :
Invalid data. Expected a dictionary, but got int.
حل ارور:
فقط کافیست همان طور که گفته شد، serializer های readو write رو از هم جدا کنید، پس سریالایزر جدید داریم :
class HuntingDetailViewSerializer(serializers.ModelSerializer): species = HuntingSpeciesSerializer(many=True, read_only=True) class Meta: model = HuntListing exclude = ('owner',)
همان طور که ملاحظه کردید، خط زیر را حذف کردیم.
technique = HuntingTechniqueTagSerializer()
دیدگاهتان را بنویسید
با سلام، ممکن در سلری به هنگام اجرا کردن که دستور زیر را زدید:
celery -A tasks worker -l=INFO
با ارور زیر مواجه شوید:
Error: Invalid value for '-l' / '--loglevel': invalid choice: info. (choose from DEBUG, INFO, WARNING, ERROR, CRITICAL, FATAL)
مشکل از کجاست!؟ فقط کافیه اون علامت مساوی رو بعد از -l بردارید و دستور رو به صورت زیر اجرا کنید:
celery -A tasks worker -l INFO
دیدگاهتان را بنویسید
با سلام، ممکن به هنگام اجرای دستور sudo systemctl start mongod.service با ارور زیر مواجه بشید:
Failed to start mongod.service: Unit mongod.service not found.
برای حل این مشکل کافیست دستور زیر رو اجرا کنید :
sudo systemctl unmask mongod
دیدگاهتان را بنویسید
با سلام، اگر کلاس های کاستوم از django_cities_light ساخته بودید و به ارور زیر برخورد کردید :
cities_light.Region.country: (fields.E304) Reverse accessor for 'Region.country' clashes with reverse accessor for 'Region.country'. HINT: Add or change a related_name argument to the definition for 'Region.country' or 'Region.country'.
برای حل این مشکل با توجه به اسناد خود django_cities_light کافیست به تنظیمات دیجنگو خط زیر را اضافه کنید :
CITIES_LIGHT_APP_NAME = ‘yourapp_name’
yourapp_name باید نام اپ باشد که داخل مدل آن کلاس های کاستوم را ساخته اید.
برای مثال اگر کلاسهای ساخته شده کاست.م در این آدرس باشند: geo/models.py پس خط اضافه شده در تنظیمات باید به شکل زیر باشد:
CITIES_LIGHT_APP_NAME = 'geo'
دیدگاهتان را بنویسید
با سلام، هنگام برخورد با ارور فوق، به احتمال قوی سایتی که Scrapy را روی آن اجرا می کنید، جلوی فعالیت شما را گرفته است. به قولی شما را بَن کرده است. خزنده شما تلاش می کند robots.txt را بخواند، اما سایت مورد نظر اجازه نمی دهد 🙂
اول از همه وارد Settings.py شوید و مطمین شوید مقدار ROBOTSTXT_OBEY برابر با False باشد (در نسخه های جدید از Scrapy این مقدار به صورت پیشفرض True است)
اگر با تغییر فوق، باز هم مشکل داشتید، بهتر است userAgent خود را تغییر دهید، برای نمونه از UserAgent زیر در فایل Settings.pyاستفاده کنید. اگر مشکل حل شد که یا باشد دنبال یه پروکسی باشید که هر دفعه IP شما را عوض بکنه یا هر دفعه UserAgent متفاوت بسازید (در این مورد داخل بلاگ حتما یه پست خواهم گذاشت ، از بالای صفحه اصلی و قسمت جستجو با عبارت scrapy یه سرچی بکنید تا ببینید الان که این مطبی رو میخوانید مطلب مربوط به پروکسی را گذاشتم یا خیر)
USER_AGENT=’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36′

دیدگاهتان را بنویسید
با سلام ودرود، بحث ساده ای رو در پیش داریم، تغییر TimeZone در Django. به صورت پیشفرض TimeZone دردیجنگو فعال می باشد.
برای تغییر TimeZone یا دیگر تنظیمات مربوط به آن باید به فایل Settings.py پروژه دیجنگوتان مراجعه کنید.

خب تو تصویر فوق ملاحظه می کنید که مقدار USE_TZ برابر با True می باشد. به این معنی که از TimeZoneاستفاده می شود. برای تغییر کافیست مقدار TIME_ZONE = ‘Asia/Tehran’ را تغییر دهید.
من تایمزون رو برابر با تهران قرار دادم، که هر مقداری می توانید قرار دهید. اینجا می توانید لیست تایمزون ها را ببینید.
دمت گرم صادق خان.
کاربردی بود.
دیدگاهتان را بنویسید
حل ارور ImportError: cannot import name ‘python_2_unicode_compatible’ from ‘django.utils.encoding’
با سلام، من ارور رو به هنگام افزودن django-cities-light دریافت کردم:
ImportError: cannot import name 'python_2_unicode_compatible' from 'django.utils.encoding'
برای این منظور کافیه جایی که python_2_unicode_compatible را import کرده اید ویرایش کنید و به جای django.utils.encoding مقدار six را قرار دهید.
همانطور که در تصویر زیر ملاحظه می کنید:

آدرس فایل برای django-cities-light آدرس زیر می باشد:
cities_light/abstract_models.py
دیدگاهتان را بنویسید
من خودم حین نصب pgadmin4 روی سرور اوبونتو و virtualenv دارای پایتون ۳.۷.۱ به این مشکل بر خوردم و کامل ارور به شکل زیر بود:
(.asemanenv) (base) sadegh_khan@aseman_ecommerce:~/w$ python .asemanenv/lib/python3.7/site-packages/pgadmin4/setup.py
Traceback (most recent call last):
File ".asemanenv/lib/python3.7/site-packages/pgadmin4/setup.py", line 17, in
from pgadmin.model import db, User, Version, ServerGroup, Server, \
File ".asemanenv/lib/python3.7/site-packages/pgadmin4/pgadmin/__init__.py", line 25, in
from flask_security import Security, SQLAlchemyUserDatastore, current_user
File ".asemanenv/lib/python3.7/site-packages/flask_security/__init__.py", line 13, in
from .core import Security, RoleMixin, UserMixin, AnonymousUser, current_user
File ".asemanenv/lib/python3.7/site-packages/flask_security/core.py", line 28, in
from .forms import ChangePasswordForm, ConfirmRegisterForm, \
File ".asemanenv/lib/python3.7/site-packages/flask_security/forms.py", line 17, in
from flask_wtf import FlaskForm as BaseForm
File ".asemanenv/lib/python3.7/site-packages/flask_wtf/__init__.py", line 17, in
from .recaptcha import *
File ".asemanenv/lib/python3.7/site-packages/flask_wtf/recaptcha/__init__.py", line 2, in
from .fields import *
File ".asemanenv/lib/python3.7/site-packages/flask_wtf/recaptcha/fields.py", line 3, in
from . import widgets
File ".asemanenv/lib/python3.7/site-packages/flask_wtf/recaptcha/widgets.py", line 5, in
from werkzeug import url_encode
ImportError: cannot import name 'url_encode' from 'werkzeug' (.asemanenv/lib/python3.7/site-packages/werkzeug/__init__.py)
و اما مشکل از کجاست ؟؟
مشکل میشه خط زیر :
ImportError: cannot import name 'url_encode' from 'werkzeug'
به نظر میرسه که ارور فوق ارور ورژنی باشد (versioning error)، ورژن جدید پکیج werkzeug دیگه دارای url_encode نیست که pgadmin4 داره دنبالش می گرده :))
راه حل :
نصب ورژنی پایینتر از ورژن فعلی werkzeug ، مشکل شما را حل خواهد کرد، برای مثال نصب ورژن werkzeug==0.16.0 با ساتفاده از دستور زیر:
pip install werkzeug==0.16.0
دیدگاهتان را بنویسید
با سلام و درود، ارور ذیل رو ممکن به هنگام نصب یکی از پکیج های پایتون باهاش برخورد کنید 🙂
FileNotFoundError: [Errno 2] No such file or directory: ‘curl-config’: ‘curl-config’
من خودم بهنگام نصب پکیج pyspider با ارور فوق برخورد داشتم. اما راه حل چیه؟؟
خیلی ساده فقط کافیه دستور زیر رو داخل ترمینال اجرا کنید :
sudo apt install libcurl4-openssl-dev libssl-dev
قط توجه داشته باشید که ارور میتونه به شکل زیر باشه (در حقیقت ارور فوق داخل ارور زیر باشه):
Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-install-z0gvhchc/pycurl/
برای حل ارور فوق باید از دستور زیر استفاده کنید :
pip install –upgrade setuptools
اما به احتمال قوی با دستور فوق که برای ارور Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-install-z0gvhchc/pycurl/ استفاده کردید مشکل حل نخواهد شد و باید از همون دستور اولی استفاده کنید :
sudo apt install libcurl4-openssl-dev libssl-dev
برای فهم بیشتر اینکه ارور چطور زیر مجموعه یه ارور دیگه باشه، تصویر زیر رو مشاهده کنید:

همونطور که می بینید ارور اون خط قرمز رنگ هست، منتهی دلیل ارور قرمز رنگ، اروری هست که در بالاتر ذکر شده
سلام وقتی دستورات رو توی ترموکس میزنم No such file or directoryمیاره باید چکار کنم هر دستوری میزنم خطا میزنه
-
خوب داداش نصب نداری فایلارو
termux-change-repoاینو بزن بعد اوکی بعد یه دونه از اونایی که تو لیست بودش اونم بزن اوکی بزن بعد بزن pkg upاینو بزن بعد کد خودتو بزن درس میشه -
سلام میشه یه مقدار با جزییات بیشتر بگید، دقیق برای انجام چه کاری و دقیق چه دستوری و برای چه کاری که می زنید این ارور رو میده
-
سلام هر کدی که تو بگی ارور میده
-
سلام داداش اینجا نمیشه بیا ی پیام رسان تا بهت بگم ولی داداش هر کدی که میزنم این خطا رو میزنه هر کدی که تو بگی
-
سلام
برای ویندوز هم آموزششو میدین ؟
تشکر
دیدگاهتان را بنویسید
خب با فرض اینکه ما postgresql به درستی نصب کردیم، منتهی به هنگام نصب psycopg2 با ارور ذیل روبرو بشیم:
You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application
برای حل این ارور کافیه دستورات زیر را به ترتیب احرا کنید:
sudo apt-get install postgresql
sudo apt-get install python-psycopg2
sudo apt-get install libpq-dev
بهترهست برای اینکه به مشکلی احتمالاً بر نخورید از پیلترشکن استفاده کنید
پس از سه دستور فوق، مجدد دستور زیر را اجرا کنید:
pip install psycopg2
باسلام وقتتون بخیر
ببخشید این مطالب برای ویندوز ههم درست هست یا فقط برای لینوکس میباشد
اگر ممکنه پاسخ دهید
ممنون
-
برای ویندوز رو متاسفانه اطلاع ندارم،
داخل لینوکس کتابخانه libpq-dev مشکل را حل میکنه که باید به ترتیب بعد از نصب postgresql و python-psycopg2 نصب بشه
دیدگاهتان را بنویسید
با سلام، اگر از zshاستفاده می کنید. کافیه مراحل زیر رو برای حل مشکل انجام بدهید:
۱- فایل .zshrcرا باز کرده. (این فایل داخل پوشه home شما می باشد – hidden است)
۲- خط زیر را به آن اضافه کنید :
export PATH="/home/username/anaconda3/bin:$PATH"
توجه کنید که مسیر رو با توجه به محل نصب anaconda تغییر دهید (اگر داخل محل پیشفرض نصب کردید، فقط باید usernameا تغییر دهید)
۳- ترمینال را ببندید و باز کنید و یا از دستور زیر استفاده کنید:
source ~/.zshrc
دیدگاهتان را بنویسید
زمان مطالعه: < 1 دقیقهخب هنگام run کردن سرور Django یکی از ارور های رایج ModuleNotFoundError می باشد. که داره میگه ماژولی را در کد استفاده کردیم که نصب نیست و راه حل نصب ماژول مورد نظر هست. در ادامه یه چند تا از ماژول های رایج و کد نصبشون جهت حل مشکل مورد نظر را آوردم:
مشکل : ModuleNotFoundError: No module named ‘httplib2’
دستور جهت رفع ارور :
pip3 install httplib2 --upgrade
مشکل : ModuleNotFoundError: No module named ‘oauth2client’
دستور جهت رفع ارور :
pip3 install --upgrade oauth2client
مشکل : ModuleNotFoundError: No module named ‘apiclient’
دستور جهت رفع ارور:
pip3 install --upgrade google-api-python-client
دیدگاهتان را بنویسید
زمان مطالعه: < 1 دقیقهحل ارور ModuleNotFoundError: No module named ‘requests’ در پایتون.
خب ارور فوق مشخصه که داره میگه ماژولی با نام requests رو نصب نداریم. برای نصب کافیه دستور زیر را بزنیم:
sudo pip3 install requests
اگر در هنگام نصب با مشکلی مشابه زیر مواجه شدیم:
من از این دستور استفاده کردم و مشکل حل شد :
easy_install requests
یک راهکار دیگه نیز میتونه باشه و اینکه شما سرور را با python اجرا کردید در صورتی که با pyhton3 اگر اجرا کنید مشکل حل خواهد شد (برای مثال):
python3 manage.py runserver 8002
سلام
من از هر ماژولی که دانلود میکنم با خطای ModuleNotFoundError مواجه میشم بعد که از دستور pip list استفاده میکنم میبینم که اسم ماژول هست و کامل نصب شده
ولی نمیدونم چرا فراخاونی نمی کنه میشه یک راهنمایی کنید؟ اخرین نسخه pip هم نصب کردم یعنی 23.1.2
راه حلی دارید؟
-
یه مقدار باید اطلاعات بیشتر بدید،
با لینوکس کار می کنید؟
امکانش رو دارید یه عکس از ترمینال و دستوراتی که می زنید ارسال کنید.
سلام من برای اجرای یک بات تلگرام با پایتون وقتی دستور اجرا رو میفرستم با همچین خطایی مواجه میشم من از پایتون3.8 استفاده میکنم
Traceback (most recent call
last):
File “bot.py”, line 2, in
from config import Config
File “/root/MDOMultiBot/config.py”, line 4, in
class Config:
File “//root/MDOMultiBot/config.y”, line 5, in Config
API_ID = int(os.environ.get(“7248171”))
TypeError: int() argument must be a string, a bytes-like object or a number, not ‘NoneType’
تمام ورودی های فایل کانفیگ رو هم درست نوشتم اما همش همین خطا رو میده
-
سلام و درود، با توجه به اروری که شما فرستید، مشکل جای دیگه است. تا کد رو ندید نمیشه گفت مشکل چیه، ولی باتوجه به ارور گفته شده، شما یه آرگومان از نوع intدارید که باید string شی ای از نوع byte یا یک عدد باشه ولی شما احتمالا یه شی خالی بهش دادید که NoneType رو عنوان کرده
سلام
ممنونم … تو محیط ویندوز هستم بله
بله اگه امکان داره آموزش نصب pip رو محبت می کنید ؟
تشکر فراوان از لطفتون
سلام
من پایتونم 3.8.3 هست … وقتی ران می کنم همچین اروری میده
Traceback (most recent call last):
File “C:/Users/IMAN/AppData/Local/Programs/Python/Python38/222.py”, line 3, in
import requests
ModuleNotFoundError: No module named ‘requests’
البته در همین پست هم ظاهرا شما همین مشکل رو برای رفعش آموزش دادین … ولی نمیدونم اینهایی که گفتین رو دقیقا باید کجا وارد کنم ؟
ممنون میشم راهنمائیم کنین
-
سلام، اگر داخل محیط لینوکس کار می کنید، کافیست محیط ترمینال را باز کنید و با دسترسی sudo دستوری که بالا ذکر شده را اجرا کنید.
sudo pip3 install requestsنکته:
با توجه به اروری که نوشتید : C:/Users/IMAN/AppData/Local/Programs/Python/Python38/222.py تو محیط ویندوز در حال اجرای پایتون هستید، داخل ویندوز کافیست CMD (command prompt) را باز کنید و دستور را اجرا کنید .
اگر هم pip را نصب ندارید، نصبش داخل ویندوز آموزش دیگه ای داره، اگر نیاز به آموزش نصبش داشتید بگید تا نصبش را کامل توضیح بدم.
سلام/ خیلی ممنون که وقت گذاشتید. بله مشکل error حل شد ولی الان ماژول های function و نمیشناسه و هیچ کدوم و نمیتونه ایمپورت کنه (راه حلی هست؟)
ImportError Traceback (most recent call last)
in
8 # create_envelope calculates the surface of the first n particles from x,y, given r
9 # create_envelope_selected calculates the surface only for the particles with indices given in nlist
—> 10 from functions import circles,deposit_particles,create_envelope,create_envelope_selected
11
12 # interactions
ImportError: cannot import name ‘circles’ from ‘functions’ (C:\Users\Win 8.1\Anaconda3\lib\site-packages\functions.py)
سلام، از پایتون ۳ استفاده می کنید؟ اگر آره، اجازه استفاده از پرانتز در آنپک کردن آرگومان ها در لامبدا برای پایتون ۳ وجود نداره. احتمال قوی ماژول مورد استفاده شما از پایتون ۳ پشتیبانی نمیکنه.
در کل در پایتون ۳ بهنگام استفاده از لامبدا، باید بجای استفاده با پرانتز:
lambda (k, v): (-v, k)
به صورت زیر از لامبدا استفاده کنید:
lambda kv: (-kv[1], kv[0])
میتونید، خط ۶۸ از function.pyرا به همین صورت اصلاح کنید و ببینید مشکل حل میشه یا خیر
سلام/من در ایمپرت یه مودول دچار مشکل شدم البته نصب کردم ولی invalid syntax میده
from functions import circles,deposit_particles,create_envelope,create_envelope_selected
این ارور و میده
from functions import circles,deposit_particles,create_envelope,create_envelope_selected
File “C:\Users\Win 8.1\Anaconda3\lib\site-packages\functions.py”, line 68
nodes = tuple(map(lambda (k, v): process_node(inner, k, v),
^
SyntaxError: invalid syntax
مشکل کجاست؟؟؟؟؟
سایتتون محشرههههه
ظرفیت8کیلوگرم