質問編集履歴

6

スペルミス

2020/08/29 13:04

投稿

mito.2357
mito.2357

スコア19

test CHANGED
File without changes
test CHANGED
@@ -120,7 +120,7 @@
120
120
 
121
121
 
122
122
 
123
- return "Writed."
123
+ return "Wrote."
124
124
 
125
125
 
126
126
 

5

追記

2020/08/29 13:04

投稿

mito.2357
mito.2357

スコア19

test CHANGED
File without changes
test CHANGED
@@ -195,3 +195,19 @@
195
195
  ### 補足情報(FW/ツールのバージョンなど)
196
196
 
197
197
  linuxbrewでpythonをインストールしようとしましたがどうしても失敗してしまうのでvenvを使ってライブラリをインストールしました。さらにXserverではsudoコマンドの権限が与えられていないためこれ以上のpythonのバージョンアップはできません。
198
+
199
+
200
+
201
+ ### 追記
202
+
203
+ **freeコマンドの結果**
204
+
205
+ ```
206
+
207
+ total used free shared buff/cache available
208
+
209
+ Mem: 527830880 11427176 502397556 626092 14006148 516403704
210
+
211
+ Swap: 23328924 0 23328924
212
+
213
+ ```

4

修正もれの修正

2020/08/28 06:08

投稿

mito.2357
mito.2357

スコア19

test CHANGED
File without changes
test CHANGED
@@ -142,7 +142,7 @@
142
142
 
143
143
  ### 試したこと
144
144
 
145
- 1. 上記のエラー(上側)`ImportError: numpy.core.multiarray failed to import`をgoogleで調べたところ, numpyをアップグレードすればよいとの情報が複数見つかりましたが、これ以上アップグレードができませんでした。おそらくXserverの環境によるもの, もしくはpythonのバージョンが3.6であるためだと考えました。
145
+ 1. 上記のエラー`ImportError: numpy.core.multiarray failed to import`をgoogleで調べたところ, numpyをアップグレードすればよいとの情報が複数見つかりましたが、これ以上アップグレードができませんでした。おそらくXserverの環境によるもの, もしくはpythonのバージョンが3.6であるためだと考えました。
146
146
 
147
147
 
148
148
 
@@ -158,7 +158,7 @@
158
158
 
159
159
 
160
160
 
161
- 3.別の関数内でインポートし呼び出ししてみましたが、関数が呼び出されるとエラー(上記の下側)`ImportError: libGLX.so.0: failed to map segment from shared object: Cannot allocate memory'`が発生してしまいました。このエラーをgoogleで調べましたが特に情報は発見できませんでした。メモリの不足かと思いましたが`from flask_sqlalchemy import SQLAlchmey`がなければ正常に動作したので関係ないと判断しました。
161
+ 3.別の関数内でインポートし呼び出ししてみましたが、関数が呼び出されるとエラー`ImportError: libGLX.so.0: failed to map segment from shared object: Cannot allocate memory'`が発生してしまいました。このエラーをgoogleで調べましたが特に情報は発見できませんでした。メモリの不足かと思いましたが`from flask_sqlalchemy import SQLAlchmey`がなければ正常に動作したので関係ないと判断しました。
162
162
 
163
163
 
164
164
 

3

ソースコードを簡潔にした

2020/08/27 10:33

投稿

mito.2357
mito.2357

スコア19

test CHANGED
File without changes
test CHANGED
@@ -13,6 +13,22 @@
13
13
  `from flask_sqlalchemy import SQLAlchmey`が含まれると`import cv2`がエラーしてしまう。
14
14
 
15
15
 
16
+
17
+ **以下の該当のソースコードのtraceback**
18
+
19
+ ```
20
+
21
+ File "/home/xs000000/---.com/public_html/test/test.py", line 14, in index import cv2
22
+
23
+
24
+
25
+ File "/home/xs000000/venv3.6/lib64/python3.6/site-packages/cv2/__init__.py", line 5, in from .cv2 import * MemoryError
26
+
27
+ ```
28
+
29
+
30
+
31
+ **実際に運用しようとしているソースコードのtraceback**
16
32
 
17
33
  ```
18
34
 
@@ -64,79 +80,53 @@
64
80
 
65
81
  # -*- coding: utf-8 -*-
66
82
 
67
- import os
83
+ # NOTE cv2は関数内インポートしている. cgiエラーするため.
68
84
 
69
- #...省略
85
+ from flask import Flask
70
86
 
71
-
72
-
73
- # NOTE numpyとcv2は関数内インポートしている. cgiエラーするため.
74
-
75
- from flask import Flask, request
76
-
77
- from flask_login import LoginManager
78
-
79
- # ...省略
80
-
81
-
82
-
83
- from database import db
84
-
85
- # in from flask_sqlalchemy import SQLAlchemy
87
+ from flask_sqlalchemy import SQLAlchemy
86
-
87
- # from flask_login import UserMixin
88
-
89
-
90
-
91
- PATH = "./uploads/sample.jpg"
92
88
 
93
89
 
94
90
 
95
91
  app = Flask(__name__)
96
92
 
97
- app.secret_key = "super secret key"
98
93
 
99
94
 
95
+ FOLDER = "uploads"
100
96
 
101
- db.init_app(app)
97
+ FILENAME = "sample.jpg"
102
98
 
103
- db.create_all(app=app)
104
-
105
-
106
-
107
- login_manager = LoginManager()
99
+ PATH = f"./{FOLDER}/{FILENAME}"
108
-
109
- login_manager.init_app(app)
110
100
 
111
101
 
112
102
 
113
103
 
114
104
 
115
- @login_manager.user_loader
105
+ @app.route('/')
116
106
 
117
- def load_user(user_id):
107
+ def index():
118
108
 
109
+ import cv2
110
+
111
+
112
+
113
+ img = cv2.imread(PATH)
114
+
115
+ img = cv2.resize(img, (100, 100))
116
+
117
+ img = compress_img(img)
118
+
119
+ cv2.imwrite(PATH, img)
120
+
121
+
122
+
119
- return User.query.get(user_id)
123
+ return "Writed."
120
124
 
121
125
 
122
126
 
123
127
 
124
128
 
125
- def from_fileStorage_to_nparray(file_):
126
-
127
- import numpy as np
128
-
129
- import cv2
130
-
131
- img_array = np.asarray(bytearray(file_.stream.read()), dtype=np.uint8)
132
-
133
- return cv2.imdecode(img_array, 1)
134
-
135
-
136
-
137
-
138
-
139
- def compress_img(img, quality=50, ch=1):
129
+ def compress_img(img, quality=10, ch=1):
140
130
 
141
131
  import cv2
142
132
 
@@ -147,36 +137,6 @@
147
137
  return None
148
138
 
149
139
  return cv2.imdecode(img, ch)
150
-
151
-
152
-
153
-
154
-
155
- @app.route('/', methods=['POST'])
156
-
157
- def index():
158
-
159
- import cv2
160
-
161
-
162
-
163
- img = request.files['image']
164
-
165
-
166
-
167
- img = from_fileStorage_to_nparray(img)
168
-
169
- img = cv2.resize(img, (100, 100))
170
-
171
- img = compress_img(img)
172
-
173
- cv2.imwrite(PATH, img)
174
-
175
-
176
-
177
- return "Hello, World!"
178
-
179
-
180
140
 
181
141
  ```
182
142
 

2

タグの追加

2020/08/27 10:31

投稿

mito.2357
mito.2357

スコア19

test CHANGED
File without changes
test CHANGED
File without changes

1

表現の変更

2020/08/27 07:42

投稿

mito.2357
mito.2357

スコア19

test CHANGED
@@ -1 +1 @@
1
- レンタルサーバー上で画像処理したいが、ある条件満たすとopencvがインポートできない
1
+ レンタルサーバー上で画像処理したいが、SQLAlchemyインポートOpenCVがインポートできない
test CHANGED
@@ -198,7 +198,7 @@
198
198
 
199
199
 
200
200
 
201
- 3.別の関数内でインポートし呼び出ししてみましたが、関数が呼び出されるとエラー(上記の下側)`ImportError: libGLX.so.0: failed to map segment from shared object: Cannot allocate memory'`が発生してしまいました。このエラーをgoogleで調べましたが特に情報は発見できませんでした。メモリの不足かと思いましたが`from flask_sqlalchemy import SQLAlchmey`がなければ正常に動作したので関係ないと考えました。
201
+ 3.別の関数内でインポートし呼び出ししてみましたが、関数が呼び出されるとエラー(上記の下側)`ImportError: libGLX.so.0: failed to map segment from shared object: Cannot allocate memory'`が発生してしまいました。このエラーをgoogleで調べましたが特に情報は発見できませんでした。メモリの不足かと思いましたが`from flask_sqlalchemy import SQLAlchmey`がなければ正常に動作したので関係ないと判断しました。
202
202
 
203
203
 
204
204
 
@@ -218,7 +218,7 @@
218
218
 
219
219
 
220
220
 
221
- 1. ローカル環境で正常に動作しているwebアプリケーションをXserverにアップロードしたところcgiエラー500が発生。`import numpy` `import cv2`がなければ動作したためこの二つによるものと判明
221
+ 1. ローカル環境で正常に動作しているwebアプリケーションをXserverにアップロードしたところcgiエラー(500 Internal Server Error)が発生。`import numpy` `import cv2`がなければ動作したためこの二つによるものと判明
222
222
 
223
223
 
224
224