هل هناك مشكلة في Python 3؟
أهلا،
يجب أن يكون متوافقًا مع كلا الإصدارين من Python: 2 و 3 ، لكن دعني أتحقق من ذلك. سوف نعود اليكم.
مرحبا شكرا على الرد السريع.
يوجد أدناه الخطأ الذي أواجهه
"------------------------------------------------- --------------------------
ModuleNotFoundError Traceback (آخر مكالمة أخيرة)
1 استيراد json
2
----> 3 من office365.runtime.auth.authentication_context استيراد المصادقة السياق
4 من office365.runtime.client_request استيراد ClientRequest
5 من office365.runtime.utilities.request_options import RequestOptions
ModuleNotFoundError: لا توجد وحدة باسم "office365 "`
ونعم ، لدي نقطة تثبيت النموذج :)
مرحبًا ، لقد كتبت رمزًا للحصول على المعلومات باستخدام وحدة الطلبات فقط. ويمكنني الحصول على ملفات تعريف الارتباط FedAuth و rtFa بنجاح. ومع ذلك ، فإنه يرمي خطأ ممنوع عندما أحاول الحصول على مستخدمي الموقع.
هل يمكنك المساعدة في هذا؟
طلبات الاستيراد
url = " https://login.microsoftonline.com/extSTS.srf "
headers = {'content-type': 'application / json'}
TopLevelUrl = ' https://XXXX.sharepoint.com '
المسار = 'C: \ PSR \ PythonFiles \ SharePointOnlineXML.txt'
filecontent = مفتوح (مسار ، 'r')
SharepointOnlineAuth = filecontent.read ()
SharepointOnlineAuth = SharepointOnlineAuth.format ('[email protected] '،' كلمة المرور '، TopLevelUrl)
response = request.post (url، data = SharepointOnlineAuth، headers = headers)
s = str (response.content)
ابدأ = [نقطة البيع في النطاق (len (s)) إذا كان [pos:]. startswith ('
Finish = [pos for pos in range (len (s)) if s [pos:]. startswith ('
LoginResponse = s [Start + 40: Finish]
url = TopLevelUrl + '/ _ Forms / default.aspx؟ wa = wsignin1.0'
headers = {'content-type': 'application / x-www-form-urlencoded'}
response = request.post (url، data = LoginResponse، headers = headers)
url = TopLevelUrl + '/ _ api / web / siteusers'
طباعة (url)
_Fedauth = 'FedAuth = {}'. تنسيق (response.cookies ['FedAuth'])
_rtFa = 'rtFa = {}'. تنسيق (response.cookies ['rtFa'])
_FinalDict = {'ملف تعريف الارتباط': _ Fedauth + '،' + _ rtFa}
headers = {'Content-Type': 'application / x-www-form-urlencoded'،
"User-Agent": "Mozilla / 5.0 (Windows NT 10.0؛ Win64؛ x64) AppleWebKit / 537.36 (KHTML ، مثل Gecko) Chrome / 59.0.3071.115 Safari / 537.36"}
headers.update (_FinalDict)
response = request.get (url، headers = headers)
طباعة (استجابة) `
الحصول على خطأ في python3.4:
_Traceback (آخر مكالمة أخيرة):
ملف "auth_sharepoint_online365.py" ، السطر 2 ، بتنسيق
من office365.runtime.auth.authentication_context استيراد AuthenticationContext
ملف "Authentication_context.py" ، السطر 2 ، بتنسيق
من office365.runtime.auth.saml_token_provider استيراد SamlTokenProvider
ملف "saml_token_provider.py" ، السطر 2 ، بتنسيق
استيراد urlparse
خطأ في الاستيراد: لا توجد وحدة باسم ' urlparse ' _
وفقًا لـ https://docs.python.org/2/library/urlparse.html :
تمت إعادة تسمية وحدة urlparse إلى urllib.parse في Python 3.
جرب https://github.com/parthrawal/Python.O365 لقد كتبت ملف .py يمكنه الاتصال بـ SharePoint Online ولديه بعض الطرق للحصول على البيانات من القوائم بتنسيق القاموس. اسمحوا لي أن أعرف إذا كنت بحاجة إلى أي مساعدة في ذلك.
@ vic-by يعمل التزام حديث على إصلاح المشكلة: https://github.com/vgrem/Office365-REST-Python-Client/commit/90731f
لاحظ أنه في هذا الوقت ، لم يتم دفع هذا الالتزام بعد على pypi. لذلك إذا قمت بإجراء pip install Office365-REST-Python-Client
فلن تحصل على هذا الرمز. التثبيت من git سوف: pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git
لا يزال هناك عمل مطلوب للحصول على المكتبة بالفعل باستخدام Python 3.
لقد واجهت مشكلة في الترميز عند تشغيل المكتبة باستخدام بيثون 3. لقد حدث ذلك عند عمل list.properties لكنني متأكد من أن المشكلة محورية.
ctx = ClientContext(url, ctx_auth)
web = ctx.web
ctx.load(web)
ctx.execute_query()
lists = web.lists
ctx.load(lists)
ctx.execute_query()
lists[0].properties
in <module>()
---> 16 lists[0].properties
c:\python\python35\lib\encodings\cp850.py in encode(self, input, final)
17 class IncrementalEncoder(codecs.IncrementalEncoder):
18 def encode(self, input, final=False):
---> 19 return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
21 class IncrementalDecoder(codecs.IncrementalDecoder):
UnicodeEncodeError: 'charmap' codec can't encode character '\u2019' in position 11052: character maps to <undefined>
أواجه نفس المشكلة مع Python 3: "ModuleNotFoundError: لا توجد وحدة تسمى 'urlparse'"
اختبار ملف SharePointOnline.py: فشل المصادقة -> كلمات المرور المدخلة والمخزنة غير متطابقة.
هل جربت هذا الرابط https://github.com/parthrawal/Python.O365 تأكد من استخدام حساب الخدمة لنفسه
نعم فعلا. انسخ / الصق الكود ، في الأسفل:
if __name__ == "__main__":
UserName = "[email protected]"
# UserName = "[email protected]"
Password = "my_password"
TopLevelUrl = "https://company.sharepoint.com/"
SPOnlineHeaders(UserName, Password, TopLevelUrl)
تم إرجاع الخطأ التالي:
....
IndexError: list index out of range
للحصول على مزيد من التفاصيل حول الخطأ ، قمت بإدراج الرمز التالي (طباعة) في SPOnlineHeaders:
response = requests.post(url, data=SharepointOnlineAuth, headers=headers)
s = str(response.content)
print(s)
إجابة:
... wst: FailedAuthentication ... كلمات المرور التي متطابقة ...
آمل أن يكون ما تستخدمه هو حساب خدمة
هذا صحيح. أنا أستخدم حساب الخدمة.
هل كلمة السر صحيحة؟ هل يمكنك إعادة التحقق من ذلك من فضلك. لأنني حاولت تشغيل الكود ، إنه يعمل بشكل جيد. ولكن عندما أدخلت كلمة مرور خاطئة ، ألقى خطأ "IndexError: list index out of range".
نعم فعلا. كلمة المرور صحيحة. هذا ما يحدث عند القيام بتسجيل الدخول يدويًا.
أكتب الرابط في المتصفح: https://company.sharepoint.com/
عند الضغط على إدخال ، تتم إعادة توجيهي إلى صفحة تسجيل الدخول: https://login.microsoftonline.com/575...71a/oauth2/authorize؟client_id=...&response_mode=form_post&response_type=code٪20id_token&resource=...&scope=openid&nonce = .... & redirect_uri = https :٪ 2F٪ 2Fcompany.sharepoint.com٪ 2F_forms٪ 2Fdefault.aspx & wsucxt = 1 & client-request-id = ....
بعد الضغط على زر موافق في صفحة تسجيل الدخول رأيت رابطين سريعين ...
أولاً: https://sts.company.com/adfs/ls/wia؟client-request-id=...&wa=wsignin1.0&wtrealm=urn٪3afederation٪3aMicrosoftOnline&wctx=LoginOptions٪3D3٪26estsredirect٪3d2٪26estsrequest٪. ... & cbcxt = & username = myemail٪ company.com & mkt = & lc =
... و ...
ثانيًا: https: //login.microsoftonline.com/login.srf؟ client-request-id = ...
وأخيرًا يتوقف عند الصفحة المطلوبة:
https://company.sharepoint.com/
قمت بتشغيل هذا الرمز وجدت أنه يلقي خطأ 403 في مكان ما في التعليمات البرمجية.
response = request.post (url، data = SharepointOnlineAuth، headers = headers)
s = str (response.content)
مطبوعات)
"b'403 ممنوع" "
لقد نسيت استخدام نقطة النهاية
urlpar
أواجه نفس المشكلة مع urlparse (Python 3.6.5 :: Anaconda، Inc.). تم حل ذلك عن طريق تعديل saml_token_provider.py: from urllib.parse import urlparse [...] url = urlparse(self.url)
ثم فقدت الويب ، الذي قمت بتثبيته به: pip install lpthw.web
. ومع ذلك ، يبدو أن هناك مشكلة ، حيث إنني أتلقى الآن المشكلة التالية:
from web import Web
File "C:\ProgramData\Anaconda3\lib\site-packages\web\__init__.py", line 14, in <module>
import utils, db, net, wsgi, http, webapi, httpserver, debugerror
ModuleNotFoundError: No module named 'utils'
قم بتثبيت وحدة utils في الأناكوندا.
قم بتثبيت وحدة utils في الأناكوندا.
شكرا. بعد تثبيت الأدوات ، احتجت أيضًا إلى تثبيت db ... قد يكون من المفيد أن يكون لديك فحص requirements.txt في الحزمة؟
ما يحدث الآن هو أن عبارات الطباعة ليست مناسبة لـ python3:
print "var", var
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("var", var)?
يرجى الدخول من خلال الرابط التالي:
https://docs.python.org/3.0/whatsnew/3.0.html
viogp نشكرك على نشر تقدمك هنا ، سيكون جيدًا إذا تمكنا من
أهلا. لدي مشكلة في استخدام هذه المكتبة.
حدث خطأ أثناء استرداد الرمز المميز: AADSTS90023: طلب STS غير صالح.
حدث خطأ أثناء استرداد ملفات تعريف ارتباط المصادقة
إرجاع 'FedAuth =' + self.FedAuth + '؛ rtFa = '+ self.rtFa
TypeError: يمكن فقط ربط str (وليس "NoneType") إلى str
أي يمكن أن يساعدني؟
نظرًا لأن المكتبة متوافقة رسميًا مع كل من إصدارات Python 2 و Python 3 ، فاقترح إغلاق هذه المشكلة.
أهلا،
أتلقى هذا الخطأ "ModuleNotFoundError: لا توجد وحدة باسم 'office365.sharepoint.client_context'" عندما أستخدم بيئة المشروع في pycharm أثناء التشغيل. لكنها ستعمل بشكل جيد إذا استخدمت بيئة نظام Python. نفس السلوك إما أن أستخدم Python 3.6 أو 3.7.
الرجاء المساعدة!
شكرا.
التعليق الأكثر فائدة
@ vic-by يعمل التزام حديث على إصلاح المشكلة: https://github.com/vgrem/Office365-REST-Python-Client/commit/90731f
لاحظ أنه في هذا الوقت ، لم يتم دفع هذا الالتزام بعد على pypi. لذلك إذا قمت بإجراء
pip install Office365-REST-Python-Client
فلن تحصل على هذا الرمز. التثبيت من git سوف:pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git